Blob Blame Raw
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>SuperLU: SRC/dldperm.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>SRC/dldperm.c File Reference</h1>Finds a row permutation so that the matrix has large entries on the diagonal. <a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="slu__ddefs_8h-source.html">slu_ddefs.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dldperm_8c.html#1e6fb0c8dd36aef071ef165136ece781">mc64id_</a> (<a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dldperm_8c.html#1bf33c16a135cdc671242aed1705e1cd">mc64ad_</a> (<a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[], double[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *, double[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>[])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dldperm_8c.html#5c6a8de5e809f2094735965027adf532">dldperm</a> (<a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> job, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> n, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> nnz, <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> colptr[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> adjncy[], double nzval[], <a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *perm, double u[], double v[])</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<pre>
 -- SuperLU routine (version 4.0) --
 Lawrence Berkeley National Laboratory.
 June 30, 2009
 </pre> <hr><h2>Function Documentation</h2>
<a class="anchor" name="5c6a8de5e809f2094735965027adf532"></a><!-- doxytag: member="dldperm.c::dldperm" ref="5c6a8de5e809f2094735965027adf532" args="(int_t job, int_t n, int_t nnz, int_t colptr[], int_t adjncy[], double nzval[], int_t *perm, double u[], double v[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dldperm           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname"> <em>job</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname"> <em>nnz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname"> <em>colptr</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname"> <em>adjncy</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>nzval</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname"> <em>perm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>u</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>v</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<pre>
 Purpose
 =======</pre><p>
<pre>   DLDPERM finds a row permutation so that the matrix has large
   entries on the diagonal.</pre><p>
<pre> Arguments
 =========</pre><p>
<pre> job    (input) int
        Control the action. Possible values for JOB are:
        = 1 : Compute a row permutation of the matrix so that the
              permuted matrix has as many entries on its diagonal as
              possible. The values on the diagonal are of arbitrary size.
              HSL subroutine MC21A/AD is used for this.
        = 2 : Compute a row permutation of the matrix so that the smallest 
              value on the diagonal of the permuted matrix is maximized.
        = 3 : Compute a row permutation of the matrix so that the smallest
              value on the diagonal of the permuted matrix is maximized.
              The algorithm differs from the one used for JOB = 2 and may
              have quite a different performance.
        = 4 : Compute a row permutation of the matrix so that the sum
              of the diagonal entries of the permuted matrix is maximized.
        = 5 : Compute a row permutation of the matrix so that the product
              of the diagonal entries of the permuted matrix is maximized
              and vectors to scale the matrix so that the nonzero diagonal 
              entries of the permuted matrix are one in absolute value and 
              all the off-diagonal entries are less than or equal to one in 
              absolute value.
        Restriction: 1 &lt;= JOB &lt;= 5.</pre><p>
<pre> n      (input) int
        The order of the matrix.</pre><p>
<pre> nnz    (input) int
        The number of nonzeros in the matrix.</pre><p>
<pre> adjncy (input) int*, of size nnz
        The adjacency structure of the matrix, which contains the row
        indices of the nonzeros.</pre><p>
<pre> colptr (input) int*, of size n+1
        The pointers to the beginning of each column in ADJNCY.</pre><p>
<pre> nzval  (input) double*, of size nnz
        The nonzero values of the matrix. nzval[k] is the value of
        the entry corresponding to adjncy[k].
        It is not used if job = 1.</pre><p>
<pre> perm   (output) int*, of size n
        The permutation vector. perm[i] = j means row i in the
        original matrix is in row j of the permuted matrix.</pre><p>
<pre> u      (output) double*, of size n
        If job = 5, the natural logarithms of the row scaling factors.</pre><p>
<pre> v      (output) double*, of size n
        If job = 5, the natural logarithms of the column scaling factors. 
        The scaled matrix B has entries b_ij = a_ij * exp(u_i + v_j).
 </pre> 
</div>
</div><p>
<a class="anchor" name="1bf33c16a135cdc671242aed1705e1cd"></a><!-- doxytag: member="dldperm.c::mc64ad_" ref="1bf33c16a135cdc671242aed1705e1cd" args="(int_t *, int_t *, int_t *, int_t[], int_t[], double[], int_t *, int_t[], int_t *, int_t[], int_t *, double[], int_t[], int_t[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> mc64ad_           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a>&nbsp;</td>
          <td class="paramname">[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1e6fb0c8dd36aef071ef165136ece781"></a><!-- doxytag: member="dldperm.c::mc64id_" ref="1e6fb0c8dd36aef071ef165136ece781" args="(int_t *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> mc64id_           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="slu__zdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 22 10:23:47 2010 for SuperLU by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>