lapack-calling-conventions.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on December 10, 2012 by texi2html 1.82
  4. texi2html was written by:
  5. Lionel Cons <[email protected]> (original author)
  6. Karl Berry <[email protected]>
  7. Olaf Bachmann <[email protected]>
  8. and many others.
  9. Maintained by: Many creative people.
  10. Send bugs and suggestions to <[email protected]>
  11. -->
  12. <head>
  13. <title>avram - a virtual machine code interpreter: D.10.1 lapack calling conventions</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: D.10.1 lapack calling conventions">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: D.10.1 lapack calling conventions">
  16. <meta name="resource-type" content="document">
  17. <meta name="distribution" content="global">
  18. <meta name="Generator" content="texi2html 1.82">
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <style type="text/css">
  21. <!--
  22. a.summary-letter {text-decoration: none}
  23. blockquote.smallquotation {font-size: smaller}
  24. pre.display {font-family: serif}
  25. pre.format {font-family: serif}
  26. pre.menu-comment {font-family: serif}
  27. pre.menu-preformatted {font-family: serif}
  28. pre.smalldisplay {font-family: serif; font-size: smaller}
  29. pre.smallexample {font-size: smaller}
  30. pre.smallformat {font-family: serif; font-size: smaller}
  31. pre.smalllisp {font-size: smaller}
  32. span.roman {font-family:serif; font-weight:normal;}
  33. span.sansserif {font-family:sans-serif; font-weight:normal;}
  34. ul.toc {list-style: none}
  35. -->
  36. </style>
  37. </head>
  38. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  39. <a name="lapack-calling-conventions"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="lapack.html#lapack" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="lapack-exceptions.html#lapack-exceptions" title="Next section in reading order"> &gt; </a>]</td>
  43. <td valign="middle" align="left"> &nbsp; </td>
  44. <td valign="middle" align="left">[<a href="External-Libraries.html#External-Libraries" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="lapack.html#lapack" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Copying.html#Copying" title="Next chapter"> &gt;&gt; </a>]</td>
  47. <td valign="middle" align="left"> &nbsp; </td>
  48. <td valign="middle" align="left"> &nbsp; </td>
  49. <td valign="middle" align="left"> &nbsp; </td>
  50. <td valign="middle" align="left"> &nbsp; </td>
  51. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  52. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  53. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  54. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  55. </tr></table>
  56. <hr size="1">
  57. <a name="lapack-calling-conventions-1"></a>
  58. <h3 class="subsection">D.10.1 <code>lapack</code> calling conventions</h3>
  59. <p>A table describing the inputs and outputs to the <code>lapack</code> library
  60. functions listed by their function names is given in this
  61. section. Some general points related to most of the functions are
  62. mentioned first.
  63. </p>
  64. <ul>
  65. <li>
  66. References to vectors, matrices, and packed matrices should be
  67. understood as their list representations explained in <a href="Type-Conversions.html#Type-Conversions">Type Conversions</a>. Although <code>LAPACK</code> internally uses column order
  68. arrays, the virtual code library interface exhibits a matrix as a list
  69. of lists with one inner list for each row.
  70. </li><li>
  71. Some functions require a symmetric matrix as an input parameter. Any
  72. <a name="index-symmetric-matrices"></a>
  73. input parameter that is required to be a symmetric matrix may be
  74. specified optionally either in square form or in triangular form as
  75. <a name="index-triangular-matrices"></a>
  76. described in <a href="Two-dimensional-arrays.html#Two-dimensional-arrays">Two dimensional arrays</a>. If a square matrix form is
  77. used, symmetry is not checked and the lower triangular portion is
  78. ignored.
  79. </li><li>
  80. Some function names are listed in pairs differing only in the first
  81. letter. Function names beginning with <code>d</code> pertain to vectors or
  82. matrices of real numbers (<a href="math.html#math"><code>math</code></a>), and function names beginning
  83. with <code>z</code> pertain to complex numbers (<a href="complex.html#complex"><code>complex</code></a>). The
  84. specifications of similarly named functions are otherwise identical.
  85. </li></ul>
  86. <dl compact="compact">
  87. <dt> <code>dgesvx</code></dt>
  88. <dt> <code>zgesvx</code></dt>
  89. <dd><p>These library functions take a pair <code>(<var>a</var>,<var>b</var>)</code> where
  90. <var>a</var> is an <var>n</var> by <var>n</var> matrix and <var>b</var> is a vector of
  91. length <var>n</var>. If <var>a</var> is non-singular, they return a
  92. vector <var>x</var> such that <code><var>a</var> <var>x</var> = <var>b</var></code>.
  93. Otherwise they return an empty list.
  94. </p></dd>
  95. <dt> <code>dgelsd</code></dt>
  96. <dt> <code>zgelsd</code></dt>
  97. <dd><p>These functions generalize those above by taking a pair
  98. <code>(<var>a</var>,<var>b</var>)</code> where <var>a</var> is an <var>m</var> by <var>n</var> matrix
  99. and <var>b</var> is a vector of length <var>m</var>, with <var>m</var> greater than
  100. <var>n</var>. They return a vector <var>x</var> of length <var>n</var> to minimize
  101. the magnitude of <code><var>b</var> - <var>a</var> <var>x</var></code>.
  102. </p></dd>
  103. <dt> <code>dgesdd</code></dt>
  104. <dt> <code>zgesdd</code></dt>
  105. <dd><p>These functions take a list of <var>m</var> time series (i.e., vectors)
  106. each of length <var>n</var> and return a list of basis vectors each of
  107. length <var>n</var>. The basis vectors span the set of time series in the
  108. <a name="index-singular-value-decomposition"></a>
  109. given list according to the singular value decomposition (i.e., with
  110. the basis vectors forming a series in order of decreasing
  111. significance). The number of basis vectors is at most
  112. <code><var>min</var>(<var>m</var>,<var>n</var>)</code> but could be less if the input time
  113. series aren&rsquo;t linearly independent. An empty list could be returned
  114. due to lack of convergence.
  115. </p></dd>
  116. <dt> <code>dgeevx</code></dt>
  117. <dt> <code>zgeevx</code></dt>
  118. <dd><p>These functions take a non-symmetric square matrix and
  119. return a pair <code>(<var>e</var>,<var>v</var>)</code> where <var>e</var> is a list of
  120. eigenvectors and <var>v</var> is a list of eigenvalues, both of which will
  121. <a name="index-eigenvectors"></a>
  122. contain only complex numbers. (N.B., both functions return complex
  123. results even though <code>dgeevx</code> takes real input.) They could also
  124. return <code>nil</code> due to a lack of convergence.
  125. </p></dd>
  126. <dt> <code>dpptrf</code></dt>
  127. <dt> <code>zpptrf</code></dt>
  128. <dd><p>These functions take a symmetric square matrix and
  129. return one of the Cholesky factors. The Cholesky factors are a pair
  130. <a name="index-Cholesky-decomposition"></a>
  131. of triangular matrices, each equal to the transpose of the other,
  132. whose product is the original matrix.
  133. </p>
  134. <ul>
  135. <li>
  136. If the input matrix is specified in lower triangular form, the lower
  137. triangular Cholesky factor is returned.
  138. </li><li>
  139. If the input matrix is specified in square or upper triangular form,
  140. the upper triangular Cholesky factor is returned.
  141. </li><li>
  142. In either case, the result is returned in triangular form.
  143. </li></ul>
  144. </dd>
  145. <dt> <code>dggglm</code></dt>
  146. <dt> <code>zggglm</code></dt>
  147. <dd><p>The input is a pair of matrices and a vector
  148. <a name="index-generalized-least-squares"></a>
  149. <a name="index-least-squares-1"></a>
  150. <code>((<var>A</var>,<var>B</var>),<var>d</var>)</code>. The output is a pair of vectors
  151. <code>(<var>x</var>,<var>y</var>)</code> satisfying <code><var>A</var><var>x</var> +
  152. <var>B</var><var>y</var> = <var>d</var></code> for which the magnitude of <var>y</var> is
  153. minimal. The dimensions all have to be consistent, which means
  154. the number of rows in <var>A</var> and <var>B</var> is the length of <var>d</var>,
  155. the number of columns in <var>A</var> is the length of <var>x</var>, and
  156. the number of columns in <var>B</var> is the length of <var>y</var>.
  157. </p></dd>
  158. <dt> <code>dgglse</code></dt>
  159. <dt> <code>zgglse</code></dt>
  160. <dd><p>The input is of the form <code>((<var>A</var>,<var>c</var>),(<var>B</var>,<var>d</var>))</code>
  161. where <var>A</var> and <var>B</var> are matrices and <var>c</var> and <var>d</var> are
  162. vectors. The output is a vector <var>x</var> to minimize the magnitude of
  163. <code><var>A</var><var>x</var> - <var>c</var></code> subject to the constraint that
  164. <code><var>B</var><var>x</var> = <var>d</var></code>. The dimensions have to be consistent,
  165. which means <var>A</var> has <var>m</var> rows, <var>c</var> has length <var>m</var>,
  166. <var>B</var> has <var>p</var> rows, <var>d</var> has length <var>p</var>, both <var>A</var> and
  167. <var>B</var> have <var>n</var> columns, and the output <var>x</var> has length
  168. <var>n</var>. It is also a requirement that <code><var>p</var> &lt;= <var>n</var> &lt;=
  169. <var>m</var> + <var>p</var></code>.
  170. </p></dd>
  171. <dt> <code>dsyevr</code></dt>
  172. <dd><p>This function takes a symmetric real matrix and returns a pair
  173. <code>(<var>e</var>,<var>v</var>)</code> where <var>e</var> is a list of eigenvectors and
  174. <var>v</var> is a list of eigenvalues. Both contain only real numbers.
  175. This function is fast and accurate but not as storage efficient as
  176. possible. If there is insufficient memory, it automatically invokes
  177. <code>dspev</code>.
  178. </p></dd>
  179. <dt> <code>dspev</code></dt>
  180. <dd><p>This function takes a symmetric real matrix and returns a pair
  181. <code>(<var>e</var>,<var>v</var>)</code> where <var>e</var> is a list of eigenvectors and
  182. <var>v</var> is a list of eigenvalues. Both contain only real numbers. It
  183. uses roughly half the memory of <code>dsyevr</code> but is not as fast or
  184. accurate.
  185. </p></dd>
  186. <dt> <code>zheevr</code></dt>
  187. <dd><p>This function takes a complex Hermitian matrix and returns a pair
  188. <a name="index-Hermitian-matrix"></a>
  189. <code>(<var>e</var>,<var>v</var>)</code> where <var>e</var> is a list of eigenvectors and
  190. <var>v</var> is a list of eigenvalues. The eigenvectors are complex but the
  191. eigenvalues are real.
  192. </p>
  193. <ul>
  194. <li>
  195. A Hermitian matrix has <var>Aij</var> equal to the complex conjugate of
  196. <var>Aji</var>.
  197. </li><li>
  198. Although not exactly symmetric, a Hermitian matrix may nevertheless
  199. be given in either upper or lower triangular form.
  200. </li><li>
  201. This function is faster but less storage efficient than <code>zhpev</code>,
  202. and calls it automatically if it runs out of memory.
  203. </li></ul>
  204. </dd>
  205. <dt> <code>zhpev</code></dt>
  206. <dd><p>This function has the same inputs and approximate outputs as
  207. <code>zheevr</code> but is slower and more memory efficient because it uses
  208. only packed matrices.
  209. </p></dd>
  210. </dl>
  211. <hr size="1">
  212. <table cellpadding="1" cellspacing="1" border="0">
  213. <tr><td valign="middle" align="left">[<a href="lapack.html#lapack" title="Previous section in reading order"> &lt; </a>]</td>
  214. <td valign="middle" align="left">[<a href="lapack-exceptions.html#lapack-exceptions" title="Next section in reading order"> &gt; </a>]</td>
  215. <td valign="middle" align="left"> &nbsp; </td>
  216. <td valign="middle" align="left">[<a href="External-Libraries.html#External-Libraries" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  217. <td valign="middle" align="left">[<a href="lapack.html#lapack" title="Up section"> Up </a>]</td>
  218. <td valign="middle" align="left">[<a href="Copying.html#Copying" title="Next chapter"> &gt;&gt; </a>]</td>
  219. <td valign="middle" align="left"> &nbsp; </td>
  220. <td valign="middle" align="left"> &nbsp; </td>
  221. <td valign="middle" align="left"> &nbsp; </td>
  222. <td valign="middle" align="left"> &nbsp; </td>
  223. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  224. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  225. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  226. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  227. </tr></table>
  228. <p>
  229. <font size="-1">
  230. This document was generated on <i>December 10, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  231. </font>
  232. <br>
  233. </p>
  234. </body>
  235. </html>