| <!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/colamd.c File Reference</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| <link href="tabs.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| |
| <div class="navigation" id="top"> |
| <div class="tabs"> |
| <ul> |
| <li><a href="index.html"><span>Main Page</span></a></li> |
| <li><a href="annotated.html"><span>Data Structures</span></a></li> |
| <li class="current"><a href="files.html"><span>Files</span></a></li> |
| </ul> |
| </div> |
| </div> |
| <div class="contents"> |
| <h1>SRC/colamd.c File Reference</h1>A sparse matrix column ordering algorithm. <a href="#_details">More...</a> |
| <p> |
| <code>#include "<a class="el" href="colamd_8h-source.html">colamd.h</a>"</code><br> |
| <code>#include <limits.h></code><br> |
| <code>#include <stdio.h></code><br> |
| <code>#include <assert.h></code><br> |
| <table border="0" cellpadding="0" cellspacing="0"> |
| <tr><td></td></tr> |
| <tr><td colspan="2"><br><h2>Defines</h2></td></tr> |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#d17d551e31d1828c68acf40684849b7e">PUBLIC</a></td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#5e151c615eda34903514212f05a5ccf8">PRIVATE</a> static</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#fa99ec4acc4ecb2dc3c2d05da15d0e3f">MAX</a>(a, b) (((a) > (b)) ? (a) : (b))</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#3acffbd305ee72dcd4593c0d8af64a4f">MIN</a>(a, b) (((a) < (b)) ? (a) : (b))</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#f4201cc2809d450d2484680ee1b958ca">ONES_COMPLEMENT</a>(r) (-(r)-1)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#a8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> (1)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#a93f0eb578d23995850d61f7d61c55c1">FALSE</a> (0)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#2b7cf2a3641be7b89138615764d60ba3">EMPTY</a> (-1)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#d8beef706da0344be19d59438fcdab6d">ALIVE</a> (0)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#3c8793c7acb4598d2ebcd8288f29ee69">DEAD</a> (-1)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#c0adce1e7d70351cef4752f3373709af">DEAD_PRINCIPAL</a> (-1)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#0f66923672bcc495333995f7d238945f">DEAD_NON_PRINCIPAL</a> (-2)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#e200d2ac8149305712af7230f9ee24d5">ROW_IS_DEAD</a>(r) ROW_IS_MARKED_DEAD (Row[r].shared2.mark)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#0d68b03acc587c11fe6dffbfede78c2d">ROW_IS_MARKED_DEAD</a>(row_mark) (row_mark < ALIVE)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#bc775359cfa45ffaf6250522c521110d">ROW_IS_ALIVE</a>(r) (Row [r].shared2.mark >= ALIVE)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#a08664bd5b8133f28dbeedc9a030fc86">COL_IS_DEAD</a>(c) (Col [c].start < ALIVE)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#50f9ca65904b13f345862cb46d08d84b">COL_IS_ALIVE</a>(c) (Col [c].start >= ALIVE)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#003c0e2dae54bcb7c680333304dd4dcb">COL_IS_DEAD_PRINCIPAL</a>(c) (Col [c].start == DEAD_PRINCIPAL)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#dde21248544152df48ab70b6da1b38b5">KILL_ROW</a>(r) { Row [r].shared2.mark = DEAD ; }</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#7882929a7898e09a3de9e7676ae1aa29">KILL_PRINCIPAL_COL</a>(c) { Col [c].start = DEAD_PRINCIPAL ; }</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#0458a358e752473d86e6f21a56b44a26">KILL_NON_PRINCIPAL_COL</a>(c) { Col [c].start = DEAD_NON_PRINCIPAL ; }</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#e1649fc947ca37a86917a08354f48d1a">PRINTF</a> printf</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#a5fad23b2a5eed790e6661e896a506b7">INDEX</a>(i) (i)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#144524f0a43ebe1a97d576a76f6557a0">DEBUG0</a>(params) ;</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#5083dbf79682be78336cc6b458c32ab4">DEBUG1</a>(params) ;</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#65bd10ffc88aa9edca29d4f6ae0da2df">DEBUG2</a>(params) ;</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#86ce320fe5d3f3088d89fdf451943008">DEBUG3</a>(params) ;</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#0ff047166d36dd8103bd12a4fbc7f7f9">DEBUG4</a>(params) ;</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#87e006a00875d2e518652108f6cb5790">ASSERT</a>(expression) ((void) 0)</td></tr> |
| |
| <tr><td colspan="2"><br><h2>Functions</h2></td></tr> |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#d632adbb6b5d2516805a965b42b601c8">init_rows_cols</a> (int n_row, int n_col, <a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> Row[], <a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int p[], int stats[COLAMD_STATS])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#c804543e35e2ab481d9e2c19ed0ebcf6">init_scoring</a> (int n_row, int n_col, <a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> Row[], <a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int head[], double knobs[COLAMD_KNOBS], int *p_n_row2, int *p_n_col2, int *p_max_deg)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#10da36e975e03d3c0fd68dbe14eb27cc">find_ordering</a> (int n_row, int n_col, int Alen, <a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> Row[], <a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int head[], int n_col2, int max_deg, int pfree)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#d9896b63f5b2823065686f63a1096130">order_children</a> (int n_col, <a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int p[])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#27211c7dc11832c4675d8d3fcd7167a0">detect_super_cols</a> (<a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int head[], int row_start, int row_length)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#9a0dc18af9f72ad8e436a98980e55c41">garbage_collection</a> (int n_row, int n_col, <a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> Row[], <a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> Col[], int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int *pfree)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#7eb036c63565d8fc7c05e1074510601a">clear_mark</a> (int n_row, <a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> Row[])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PRIVATE void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#5ba6567b2e4ac6f69086d2ac7ab5c58a">print_report</a> (char *method, int stats[COLAMD_STATS])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#ac7214b99bcf4db1b13547521367817f">colamd_recommended</a> (int nnz, int n_row, int n_col)</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#cd15277a8a063dd0586e280004a92c89">colamd_set_defaults</a> (double knobs[COLAMD_KNOBS])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#e81243e57d577e17400b3f532aa4f1e9">symamd</a> (int n, int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int p[], int perm[], double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS], void *(*allocate)(size_t, size_t), void(*release)(void *))</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC int </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#4ace2482b681af56de48dd3ba8971baf">colamd</a> (int n_row, int n_col, int Alen, int <a class="el" href="ilu__zdrop__row_8c.html#c900805a486cbb8489e3c176ed6e0d8e">A</a>[], int p[], double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#85f2c13be93dea98e624144272d00eed">colamd_report</a> (int stats[COLAMD_STATS])</td></tr> |
| |
| <tr><td class="memItemLeft" nowrap align="right" valign="top">PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="colamd_8c.html#df3bb99ff64711d528dafe21fd450512">symamd_report</a> (int stats[COLAMD_STATS])</td></tr> |
| |
| </table> |
| <hr><a name="_details"></a><h2>Detailed Description</h2> |
| <pre> |
| ========================================================================== |
| === colamd/symamd - a sparse matrix column ordering algorithm ============ |
| ==========================================================================</pre><p> |
| <pre> colamd: an approximate minimum degree column ordering algorithm, |
| for LU factorization of symmetric or unsymmetric matrices, |
| QR factorization, least squares, interior point methods for |
| linear programming problems, and other related problems.</pre><p> |
| <pre> symamd: an approximate minimum degree ordering algorithm for Cholesky |
| factorization of symmetric matrices.</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Colamd computes a permutation Q such that the Cholesky factorization of |
| (AQ)'(AQ) has less fill-in and requires fewer floating point operations |
| than A'A. This also provides a good ordering for sparse partial |
| pivoting methods, P(AQ) = LU, where Q is computed prior to numerical |
| factorization, and P is computed during numerical factorization via |
| conventional partial pivoting with row interchanges. Colamd is the |
| column ordering method used in SuperLU, part of the ScaLAPACK library. |
| It is also available as built-in function in MATLAB Version 6, |
| available from MathWorks, Inc. (<a href="http://www.mathworks.com">http://www.mathworks.com</a>). This |
| routine can be used in place of colmmd in MATLAB.</pre><p> |
| <pre> Symamd computes a permutation P of a symmetric matrix A such that the |
| Cholesky factorization of PAP' has less fill-in and requires fewer |
| floating point operations than A. Symamd constructs a matrix M such |
| that M'M has the same nonzero pattern of A, and then orders the columns |
| of M using colmmd. The column ordering of M is then returned as the |
| row and column ordering P of A.</pre><p> |
| <pre> Authors:</pre><p> |
| <pre> The authors of the code itself are Stefan I. Larimore and Timothy A. |
| Davis (<a href="mailto:davis@cise.ufl.edu">davis@cise.ufl.edu</a>), University of Florida. The algorithm was |
| developed in collaboration with John Gilbert, Xerox PARC, and Esmond |
| Ng, Oak Ridge National Laboratory.</pre><p> |
| <pre> Date:</pre><p> |
| <pre> September 8, 2003. Version 2.3.</pre><p> |
| <pre> Acknowledgements:</pre><p> |
| <pre> This work was supported by the National Science Foundation, under |
| grants DMS-9504974 and DMS-9803599.</pre><p> |
| <pre> Copyright and License:</pre><p> |
| <pre> Copyright (c) 1998-2003 by the University of Florida. |
| All Rights Reserved.</pre><p> |
| <pre> THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY |
| EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.</pre><p> |
| <pre> Permission is hereby granted to use, copy, modify, and/or distribute |
| this program, provided that the Copyright, this License, and the |
| Availability of the original version is retained on all copies and made |
| accessible to the end-user of any code or package that includes COLAMD |
| or any modified version of COLAMD.</pre><p> |
| <pre> Availability:</pre><p> |
| <pre> The colamd/symamd library is available at</pre><p> |
| <pre> <a href="http://www.cise.ufl.edu/research/sparse/colamd/">http://www.cise.ufl.edu/research/sparse/colamd/</a></pre><p> |
| <pre> This is the <a href="http://www.cise.ufl.edu/research/sparse/colamd/colamd.c">http://www.cise.ufl.edu/research/sparse/colamd/colamd.c</a> |
| file. It requires the <a class="el" href="colamd_8h.html" title="Colamd prototypes and definitions.">colamd.h</a> file. It is required by the colamdmex.c |
| and symamdmex.c files, for the MATLAB interface to colamd and symamd.</pre><p> |
| <pre> See the ChangeLog file for changes since Version 1.0.</pre><p> |
| <pre> ========================================================================== |
| === Description of user-callable routines ================================ |
| ==========================================================================</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| colamd_recommended: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| int colamd_recommended (int nnz, int n_row, int n_col) ;</pre><p> |
| <pre> or as a C macro</pre><p> |
| <pre> include "colamd.h" |
| Alen = COLAMD_RECOMMENDED (int nnz, int n_row, int n_col) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Returns recommended value of Alen for use by colamd. Returns -1 |
| if any input argument is negative. The use of this routine |
| or macro is optional. Note that the macro uses its arguments |
| more than once, so be careful for side effects, if you pass |
| expressions as arguments to COLAMD_RECOMMENDED. Not needed for |
| symamd, which dynamically allocates its own memory.</pre><p> |
| <pre> Arguments (all input arguments):</pre><p> |
| <pre> int nnz ; Number of nonzeros in the matrix A. This must |
| be the same value as p [n_col] in the call to |
| colamd - otherwise you will get a wrong value |
| of the recommended memory to use.</pre><p> |
| <pre> int n_row ; Number of rows in the matrix A.</pre><p> |
| <pre> int n_col ; Number of columns in the matrix A.</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| colamd_set_defaults: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| colamd_set_defaults (double knobs [COLAMD_KNOBS]) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Sets the default parameters. The use of this routine is optional.</pre><p> |
| <pre> Arguments:</pre><p> |
| <pre> double knobs [COLAMD_KNOBS] ; Output only.</pre><p> |
| <pre> Colamd: rows with more than (knobs [COLAMD_DENSE_ROW] * n_col) |
| entries are removed prior to ordering. Columns with more than |
| (knobs [COLAMD_DENSE_COL] * n_row) entries are removed prior to |
| ordering, and placed last in the output column ordering.</pre><p> |
| <pre> Symamd: uses only knobs [COLAMD_DENSE_ROW], which is knobs [0]. |
| Rows and columns with more than (knobs [COLAMD_DENSE_ROW] * n) |
| entries are removed prior to ordering, and placed last in the |
| output ordering.</pre><p> |
| <pre> COLAMD_DENSE_ROW and COLAMD_DENSE_COL are defined as 0 and 1, |
| respectively, in <a class="el" href="colamd_8h.html" title="Colamd prototypes and definitions.">colamd.h</a>. Default values of these two knobs |
| are both 0.5. Currently, only knobs [0] and knobs [1] are |
| used, but future versions may use more knobs. If so, they will |
| be properly set to their defaults by the future version of |
| colamd_set_defaults, so that the code that calls colamd will |
| not need to change, assuming that you either use |
| colamd_set_defaults, or pass a (double *) NULL pointer as the |
| knobs array to colamd or symamd.</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| colamd: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| int colamd (int n_row, int n_col, int Alen, int *A, int *p, |
| double knobs [COLAMD_KNOBS], int stats [COLAMD_STATS]) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Computes a column ordering (Q) of A such that P(AQ)=LU or |
| (AQ)'AQ=LL' have less fill-in and require fewer floating point |
| operations than factorizing the unpermuted matrix A or A'A, |
| respectively.</pre><p> |
| <pre> Returns:</pre><p> |
| <pre> TRUE (1) if successful, FALSE (0) otherwise.</pre><p> |
| <pre> Arguments:</pre><p> |
| <pre> int n_row ; Input argument.</pre><p> |
| <pre> Number of rows in the matrix A. |
| Restriction: n_row >= 0. |
| Colamd returns FALSE if n_row is negative.</pre><p> |
| <pre> int n_col ; Input argument.</pre><p> |
| <pre> Number of columns in the matrix A. |
| Restriction: n_col >= 0. |
| Colamd returns FALSE if n_col is negative.</pre><p> |
| <pre> int Alen ; Input argument.</pre><p> |
| <pre> Restriction (see note): |
| Alen >= 2*nnz + 6*(n_col+1) + 4*(n_row+1) + n_col |
| Colamd returns FALSE if these conditions are not met.</pre><p> |
| <pre> Note: this restriction makes an modest assumption regarding |
| the size of the two typedef's structures in <a class="el" href="colamd_8h.html" title="Colamd prototypes and definitions.">colamd.h</a>. |
| We do, however, guarantee that</pre><p> |
| <pre> Alen >= colamd_recommended (nnz, n_row, n_col)</pre><p> |
| <pre> or equivalently as a C preprocessor macro:</pre><p> |
| <pre> Alen >= COLAMD_RECOMMENDED (nnz, n_row, n_col)</pre><p> |
| <pre> will be sufficient.</pre><p> |
| <pre> int A [Alen] ; Input argument, undefined on output.</pre><p> |
| <pre> A is an integer array of size Alen. Alen must be at least as |
| large as the bare minimum value given above, but this is very |
| low, and can result in excessive run time. For best |
| performance, we recommend that Alen be greater than or equal to |
| colamd_recommended (nnz, n_row, n_col), which adds |
| nnz/5 to the bare minimum value given above.</pre><p> |
| <pre> On input, the row indices of the entries in column c of the |
| matrix are held in A [(p [c]) ... (p [c+1]-1)]. The row indices |
| in a given column c need not be in ascending order, and |
| duplicate row indices may be be present. However, colamd will |
| work a little faster if both of these conditions are met |
| (Colamd puts the matrix into this format, if it finds that the |
| the conditions are not met).</pre><p> |
| <pre> The matrix is 0-based. That is, rows are in the range 0 to |
| n_row-1, and columns are in the range 0 to n_col-1. Colamd |
| returns FALSE if any row index is out of range.</pre><p> |
| <pre> The contents of A are modified during ordering, and are |
| undefined on output.</pre><p> |
| <pre> int p [n_col+1] ; Both input and output argument.</pre><p> |
| <pre> p is an integer array of size n_col+1. On input, it holds the |
| "pointers" for the column form of the matrix A. Column c of |
| the matrix A is held in A [(p [c]) ... (p [c+1]-1)]. The first |
| entry, p [0], must be zero, and p [c] <= p [c+1] must hold |
| for all c in the range 0 to n_col-1. The value p [n_col] is |
| thus the total number of entries in the pattern of the matrix A. |
| Colamd returns FALSE if these conditions are not met.</pre><p> |
| <pre> On output, if colamd returns TRUE, the array p holds the column |
| permutation (Q, for P(AQ)=LU or (AQ)'(AQ)=LL'), where p [0] is |
| the first column index in the new ordering, and p [n_col-1] is |
| the last. That is, p [k] = j means that column j of A is the |
| kth pivot column, in AQ, where k is in the range 0 to n_col-1 |
| (p [0] = j means that column j of A is the first column in AQ).</pre><p> |
| <pre> If colamd returns FALSE, then no permutation is returned, and |
| p is undefined on output.</pre><p> |
| <pre> double knobs [COLAMD_KNOBS] ; Input argument.</pre><p> |
| <pre> See colamd_set_defaults for a description.</pre><p> |
| <pre> int stats [COLAMD_STATS] ; Output argument.</pre><p> |
| <pre> Statistics on the ordering, and error status. |
| See <a class="el" href="colamd_8h.html" title="Colamd prototypes and definitions.">colamd.h</a> for related definitions. |
| Colamd returns FALSE if stats is not present.</pre><p> |
| <pre> stats [0]: number of dense or empty rows ignored.</pre><p> |
| <pre> stats [1]: number of dense or empty columns ignored (and |
| ordered last in the output permutation p) |
| Note that a row can become "empty" if it |
| contains only "dense" and/or "empty" columns, |
| and similarly a column can become "empty" if it |
| only contains "dense" and/or "empty" rows.</pre><p> |
| <pre> stats [2]: number of garbage collections performed. |
| This can be excessively high if Alen is close |
| to the minimum required value.</pre><p> |
| <pre> stats [3]: status code. < 0 is an error code. |
| > 1 is a warning or notice.</pre><p> |
| <pre> 0 OK. Each column of the input matrix contained |
| row indices in increasing order, with no |
| duplicates.</pre><p> |
| <pre> 1 OK, but columns of input matrix were jumbled |
| (unsorted columns or duplicate entries). Colamd |
| had to do some extra work to sort the matrix |
| first and remove duplicate entries, but it |
| still was able to return a valid permutation |
| (return value of colamd was TRUE).</pre><p> |
| <pre> stats [4]: highest numbered column that |
| is unsorted or has duplicate |
| entries. |
| stats [5]: last seen duplicate or |
| unsorted row index. |
| stats [6]: number of duplicate or |
| unsorted row indices.</pre><p> |
| <pre> -1 A is a null pointer</pre><p> |
| <pre> -2 p is a null pointer</pre><p> |
| <pre> -3 n_row is negative</pre><p> |
| <pre> stats [4]: n_row</pre><p> |
| <pre> -4 n_col is negative</pre><p> |
| <pre> stats [4]: n_col</pre><p> |
| <pre> -5 number of nonzeros in matrix is negative</pre><p> |
| <pre> stats [4]: number of nonzeros, p [n_col]</pre><p> |
| <pre> -6 p [0] is nonzero</pre><p> |
| <pre> stats [4]: p [0]</pre><p> |
| <pre> -7 A is too small</pre><p> |
| <pre> stats [4]: required size |
| stats [5]: actual size (Alen)</pre><p> |
| <pre> -8 a column has a negative number of entries</pre><p> |
| <pre> stats [4]: column with < 0 entries |
| stats [5]: number of entries in col</pre><p> |
| <pre> -9 a row index is out of bounds</pre><p> |
| <pre> stats [4]: column with bad row index |
| stats [5]: bad row index |
| stats [6]: n_row, # of rows of matrx</pre><p> |
| <pre> -10 (unused; see symamd.c)</pre><p> |
| <pre> -999 (unused; see symamd.c)</pre><p> |
| <pre> Future versions may return more statistics in the stats array.</pre><p> |
| <pre> Example:</pre><p> |
| <pre> See <a href="http://www.cise.ufl.edu/research/sparse/colamd/example.c">http://www.cise.ufl.edu/research/sparse/colamd/example.c</a> |
| for a complete example.</pre><p> |
| <pre> To order the columns of a 5-by-4 matrix with 11 nonzero entries in |
| the following nonzero pattern</pre><p> |
| <pre> x 0 x 0 |
| x 0 x x |
| 0 x x 0 |
| 0 0 x x |
| x x 0 0</pre><p> |
| <pre> with default knobs and no output statistics, do the following:</pre><p> |
| <pre> include "colamd.h" |
| define ALEN COLAMD_RECOMMENDED (11, 5, 4) |
| int A [ALEN] = {1, 2, 5, 3, 5, 1, 2, 3, 4, 2, 4} ; |
| int p [ ] = {0, 3, 5, 9, 11} ; |
| int stats [COLAMD_STATS] ; |
| colamd (5, 4, ALEN, A, p, (double *) NULL, stats) ;</pre><p> |
| <pre> The permutation is returned in the array p, and A is destroyed.</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| symamd: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| int symamd (int n, int *A, int *p, int *perm, |
| double knobs [COLAMD_KNOBS], int stats [COLAMD_STATS], |
| void (*allocate) (size_t, size_t), void (*release) (void *)) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> The symamd routine computes an ordering P of a symmetric sparse |
| matrix A such that the Cholesky factorization PAP' = LL' remains |
| sparse. It is based on a column ordering of a matrix M constructed |
| so that the nonzero pattern of M'M is the same as A. The matrix A |
| is assumed to be symmetric; only the strictly lower triangular part |
| is accessed. You must pass your selected memory allocator (usually |
| calloc/free or mxCalloc/mxFree) to symamd, for it to allocate |
| memory for the temporary matrix M.</pre><p> |
| <pre> Returns:</pre><p> |
| <pre> TRUE (1) if successful, FALSE (0) otherwise.</pre><p> |
| <pre> Arguments:</pre><p> |
| <pre> int n ; Input argument.</pre><p> |
| <pre> Number of rows and columns in the symmetrix matrix A. |
| Restriction: n >= 0. |
| Symamd returns FALSE if n is negative.</pre><p> |
| <pre> int A [nnz] ; Input argument.</pre><p> |
| <pre> A is an integer array of size nnz, where nnz = p [n].</pre><p> |
| <pre> The row indices of the entries in column c of the matrix are |
| held in A [(p [c]) ... (p [c+1]-1)]. The row indices in a |
| given column c need not be in ascending order, and duplicate |
| row indices may be present. However, symamd will run faster |
| if the columns are in sorted order with no duplicate entries.</pre><p> |
| <pre> The matrix is 0-based. That is, rows are in the range 0 to |
| n-1, and columns are in the range 0 to n-1. Symamd |
| returns FALSE if any row index is out of range.</pre><p> |
| <pre> The contents of A are not modified.</pre><p> |
| <pre> int p [n+1] ; Input argument.</pre><p> |
| <pre> p is an integer array of size n+1. On input, it holds the |
| "pointers" for the column form of the matrix A. Column c of |
| the matrix A is held in A [(p [c]) ... (p [c+1]-1)]. The first |
| entry, p [0], must be zero, and p [c] <= p [c+1] must hold |
| for all c in the range 0 to n-1. The value p [n] is |
| thus the total number of entries in the pattern of the matrix A. |
| Symamd returns FALSE if these conditions are not met.</pre><p> |
| <pre> The contents of p are not modified.</pre><p> |
| <pre> int perm [n+1] ; Output argument.</pre><p> |
| <pre> On output, if symamd returns TRUE, the array perm holds the |
| permutation P, where perm [0] is the first index in the new |
| ordering, and perm [n-1] is the last. That is, perm [k] = j |
| means that row and column j of A is the kth column in PAP', |
| where k is in the range 0 to n-1 (perm [0] = j means |
| that row and column j of A are the first row and column in |
| PAP'). The array is used as a workspace during the ordering, |
| which is why it must be of length n+1, not just n.</pre><p> |
| <pre> double knobs [COLAMD_KNOBS] ; Input argument.</pre><p> |
| <pre> See colamd_set_defaults for a description.</pre><p> |
| <pre> int stats [COLAMD_STATS] ; Output argument.</pre><p> |
| <pre> Statistics on the ordering, and error status. |
| See <a class="el" href="colamd_8h.html" title="Colamd prototypes and definitions.">colamd.h</a> for related definitions. |
| Symamd returns FALSE if stats is not present.</pre><p> |
| <pre> stats [0]: number of dense or empty row and columns ignored |
| (and ordered last in the output permutation |
| perm). Note that a row/column can become |
| "empty" if it contains only "dense" and/or |
| "empty" columns/rows.</pre><p> |
| <pre> stats [1]: (same as stats [0])</pre><p> |
| <pre> stats [2]: number of garbage collections performed.</pre><p> |
| <pre> stats [3]: status code. < 0 is an error code. |
| > 1 is a warning or notice.</pre><p> |
| <pre> 0 OK. Each column of the input matrix contained |
| row indices in increasing order, with no |
| duplicates.</pre><p> |
| <pre> 1 OK, but columns of input matrix were jumbled |
| (unsorted columns or duplicate entries). Symamd |
| had to do some extra work to sort the matrix |
| first and remove duplicate entries, but it |
| still was able to return a valid permutation |
| (return value of symamd was TRUE).</pre><p> |
| <pre> stats [4]: highest numbered column that |
| is unsorted or has duplicate |
| entries. |
| stats [5]: last seen duplicate or |
| unsorted row index. |
| stats [6]: number of duplicate or |
| unsorted row indices.</pre><p> |
| <pre> -1 A is a null pointer</pre><p> |
| <pre> -2 p is a null pointer</pre><p> |
| <pre> -3 (unused, see <a class="el" href="colamd_8c.html" title="A sparse matrix column ordering algorithm.">colamd.c</a>)</pre><p> |
| <pre> -4 n is negative</pre><p> |
| <pre> stats [4]: n</pre><p> |
| <pre> -5 number of nonzeros in matrix is negative</pre><p> |
| <pre> stats [4]: # of nonzeros (p [n]).</pre><p> |
| <pre> -6 p [0] is nonzero</pre><p> |
| <pre> stats [4]: p [0]</pre><p> |
| <pre> -7 (unused)</pre><p> |
| <pre> -8 a column has a negative number of entries</pre><p> |
| <pre> stats [4]: column with < 0 entries |
| stats [5]: number of entries in col</pre><p> |
| <pre> -9 a row index is out of bounds</pre><p> |
| <pre> stats [4]: column with bad row index |
| stats [5]: bad row index |
| stats [6]: n_row, # of rows of matrx</pre><p> |
| <pre> -10 out of memory (unable to allocate temporary |
| workspace for M or count arrays using the |
| "allocate" routine passed into symamd).</pre><p> |
| <pre> -999 internal error. colamd failed to order the |
| matrix M, when it should have succeeded. This |
| indicates a bug. If this (and *only* this) |
| error code occurs, please contact the authors. |
| Don't contact the authors if you get any other |
| error code.</pre><p> |
| <pre> Future versions may return more statistics in the stats array.</pre><p> |
| <pre> void * (*allocate) (size_t, size_t)</pre><p> |
| <pre> A pointer to a function providing memory allocation. The |
| allocated memory must be returned initialized to zero. For a |
| C application, this argument should normally be a pointer to |
| calloc. For a MATLAB mexFunction, the routine mxCalloc is |
| passed instead.</pre><p> |
| <pre> void (*release) (size_t, size_t)</pre><p> |
| <pre> A pointer to a function that frees memory allocated by the |
| memory allocation routine above. For a C application, this |
| argument should normally be a pointer to free. For a MATLAB |
| mexFunction, the routine mxFree is passed instead.</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| colamd_report: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| colamd_report (int stats [COLAMD_STATS]) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Prints the error status and statistics recorded in the stats |
| array on the standard error output (for a standard C routine) |
| or on the MATLAB output (for a mexFunction).</pre><p> |
| <pre> Arguments:</pre><p> |
| <pre> int stats [COLAMD_STATS] ; Input only. Statistics from colamd.</pre><p> |
| <pre> ---------------------------------------------------------------------------- |
| symamd_report: |
| ----------------------------------------------------------------------------</pre><p> |
| <pre> C syntax:</pre><p> |
| <pre> include "colamd.h" |
| symamd_report (int stats [COLAMD_STATS]) ;</pre><p> |
| <pre> Purpose:</pre><p> |
| <pre> Prints the error status and statistics recorded in the stats |
| array on the standard error output (for a standard C routine) |
| or on the MATLAB output (for a mexFunction).</pre><p> |
| <pre> Arguments:</pre><p> |
| <pre> int stats [COLAMD_STATS] ; Input only. Statistics from symamd.</pre><p> |
| <pre> </pre> <hr><h2>Define Documentation</h2> |
| <a class="anchor" name="d8beef706da0344be19d59438fcdab6d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ALIVE (0) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="87e006a00875d2e518652108f6cb5790"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ASSERT </td> |
| <td>(</td> |
| <td class="paramtype">expression </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ((void) 0)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="50f9ca65904b13f345862cb46d08d84b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define COL_IS_ALIVE </td> |
| <td>(</td> |
| <td class="paramtype">c </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (Col [c].start >= ALIVE)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="a08664bd5b8133f28dbeedc9a030fc86"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define COL_IS_DEAD </td> |
| <td>(</td> |
| <td class="paramtype">c </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (Col [c].start < ALIVE)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="003c0e2dae54bcb7c680333304dd4dcb"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define COL_IS_DEAD_PRINCIPAL </td> |
| <td>(</td> |
| <td class="paramtype">c </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (Col [c].start == DEAD_PRINCIPAL)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="3c8793c7acb4598d2ebcd8288f29ee69"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEAD (-1) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="0f66923672bcc495333995f7d238945f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEAD_NON_PRINCIPAL (-2) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="c0adce1e7d70351cef4752f3373709af"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEAD_PRINCIPAL (-1) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="144524f0a43ebe1a97d576a76f6557a0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEBUG0 </td> |
| <td>(</td> |
| <td class="paramtype">params </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ;</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="5083dbf79682be78336cc6b458c32ab4"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEBUG1 </td> |
| <td>(</td> |
| <td class="paramtype">params </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ;</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="65bd10ffc88aa9edca29d4f6ae0da2df"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEBUG2 </td> |
| <td>(</td> |
| <td class="paramtype">params </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ;</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="86ce320fe5d3f3088d89fdf451943008"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEBUG3 </td> |
| <td>(</td> |
| <td class="paramtype">params </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ;</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="0ff047166d36dd8103bd12a4fbc7f7f9"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define DEBUG4 </td> |
| <td>(</td> |
| <td class="paramtype">params </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ;</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="2b7cf2a3641be7b89138615764d60ba3"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define EMPTY (-1) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="a93f0eb578d23995850d61f7d61c55c1"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define FALSE (0) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="a5fad23b2a5eed790e6661e896a506b7"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define INDEX </td> |
| <td>(</td> |
| <td class="paramtype">i </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (i)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="0458a358e752473d86e6f21a56b44a26"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define KILL_NON_PRINCIPAL_COL </td> |
| <td>(</td> |
| <td class="paramtype">c </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> { Col [c].start = DEAD_NON_PRINCIPAL ; }</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="7882929a7898e09a3de9e7676ae1aa29"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define KILL_PRINCIPAL_COL </td> |
| <td>(</td> |
| <td class="paramtype">c </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> { Col [c].start = DEAD_PRINCIPAL ; }</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="dde21248544152df48ab70b6da1b38b5"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define KILL_ROW </td> |
| <td>(</td> |
| <td class="paramtype">r </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> { Row [r].shared2.mark = DEAD ; }</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="fa99ec4acc4ecb2dc3c2d05da15d0e3f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MAX </td> |
| <td>(</td> |
| <td class="paramtype">a, <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">b </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (((a) > (b)) ? (a) : (b))</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="3acffbd305ee72dcd4593c0d8af64a4f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define MIN </td> |
| <td>(</td> |
| <td class="paramtype">a, <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">b </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (((a) < (b)) ? (a) : (b))</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="f4201cc2809d450d2484680ee1b958ca"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ONES_COMPLEMENT </td> |
| <td>(</td> |
| <td class="paramtype">r </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (-(r)-1)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="e1649fc947ca37a86917a08354f48d1a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define PRINTF printf </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="5e151c615eda34903514212f05a5ccf8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define PRIVATE static </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="d17d551e31d1828c68acf40684849b7e"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define PUBLIC </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="bc775359cfa45ffaf6250522c521110d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ROW_IS_ALIVE </td> |
| <td>(</td> |
| <td class="paramtype">r </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (Row [r].shared2.mark >= ALIVE)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="e200d2ac8149305712af7230f9ee24d5"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ROW_IS_DEAD </td> |
| <td>(</td> |
| <td class="paramtype">r </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> ROW_IS_MARKED_DEAD (Row[r].shared2.mark)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="0d68b03acc587c11fe6dffbfede78c2d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ROW_IS_MARKED_DEAD </td> |
| <td>(</td> |
| <td class="paramtype">row_mark </td> |
| <td class="paramname"> </td> |
| <td> ) </td> |
| <td width="100%"> (row_mark < ALIVE)</td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="a8cecfc5c5c054d2875c03e77b7be15d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define TRUE (1) </td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <hr><h2>Function Documentation</h2> |
| <a class="anchor" name="7eb036c63565d8fc7c05e1074510601a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE int clear_mark </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> </td> |
| <td class="paramname"> <em>Row</em>[]</td><td> </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="4ace2482b681af56de48dd3ba8971baf"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC int colamd </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>Alen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>p</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">double </td> |
| <td class="paramname"> <em>knobs</em>[COLAMD_KNOBS], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS]</td><td> </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="ac7214b99bcf4db1b13547521367817f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC int colamd_recommended </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>nnz</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em></td><td> </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="85f2c13be93dea98e624144272d00eed"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC void colamd_report </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS] </td> |
| <td> ) </td> |
| <td width="100%"></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="cd15277a8a063dd0586e280004a92c89"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC void colamd_set_defaults </td> |
| <td>(</td> |
| <td class="paramtype">double </td> |
| <td class="paramname"> <em>knobs</em>[COLAMD_KNOBS] </td> |
| <td> ) </td> |
| <td width="100%"></td> |
| </tr> |
| </table> |
| </div> |
| <div class="memdoc"> |
| |
| <p> |
| |
| </div> |
| </div><p> |
| <a class="anchor" name="27211c7dc11832c4675d8d3fcd7167a0"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE void detect_super_cols </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>head</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>row_start</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>row_length</em></td><td> </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="10da36e975e03d3c0fd68dbe14eb27cc"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE int find_ordering </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>Alen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> </td> |
| <td class="paramname"> <em>Row</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>head</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>max_deg</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>pfree</em></td><td> </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="9a0dc18af9f72ad8e436a98980e55c41"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE int garbage_collection </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> </td> |
| <td class="paramname"> <em>Row</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int * </td> |
| <td class="paramname"> <em>pfree</em></td><td> </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="d632adbb6b5d2516805a965b42b601c8"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE int init_rows_cols </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> </td> |
| <td class="paramname"> <em>Row</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>p</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS]</td><td> </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="c804543e35e2ab481d9e2c19ed0ebcf6"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE void init_scoring </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_row</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Row__struct.html">Colamd_Row</a> </td> |
| <td class="paramname"> <em>Row</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>head</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">double </td> |
| <td class="paramname"> <em>knobs</em>[COLAMD_KNOBS], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int * </td> |
| <td class="paramname"> <em>p_n_row2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int * </td> |
| <td class="paramname"> <em>p_n_col2</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int * </td> |
| <td class="paramname"> <em>p_max_deg</em></td><td> </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="d9896b63f5b2823065686f63a1096130"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE void order_children </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n_col</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structColamd__Col__struct.html">Colamd_Col</a> </td> |
| <td class="paramname"> <em>Col</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>p</em>[]</td><td> </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="5ba6567b2e4ac6f69086d2ac7ab5c58a"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PRIVATE void print_report </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"> <em>method</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS]</td><td> </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="e81243e57d577e17400b3f532aa4f1e9"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC int symamd </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>n</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>A</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>p</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>perm</em>[], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">double </td> |
| <td class="paramname"> <em>knobs</em>[COLAMD_KNOBS], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS], </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void *(*)(size_t, size_t) </td> |
| <td class="paramname"> <em>allocate</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">void(*)(void *) </td> |
| <td class="paramname"> <em>release</em></td><td> </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="df3bb99ff64711d528dafe21fd450512"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">PUBLIC void symamd_report </td> |
| <td>(</td> |
| <td class="paramtype">int </td> |
| <td class="paramname"> <em>stats</em>[COLAMD_STATS] </td> |
| <td> ) </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 |
| <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> |