SuperLU Distributed 8.2.1
Distributed memory sparse direct solver
colamd.h File Reference

Colamd prototypes and definitions. More...

#include <stdlib.h>
Include dependency graph for colamd.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Colamd_Col_struct
 
struct  Colamd_Row_struct
 

Macros

#define COLAMD_KNOBS   20
 
#define COLAMD_STATS   20
 
#define COLAMD_DENSE_ROW   0
 
#define COLAMD_DENSE_COL   1
 
#define COLAMD_DEFRAG_COUNT   2
 
#define COLAMD_STATUS   3
 
#define COLAMD_INFO1   4
 
#define COLAMD_INFO2   5
 
#define COLAMD_INFO3   6
 
#define COLAMD_OK   (0)
 
#define COLAMD_OK_BUT_JUMBLED   (1)
 
#define COLAMD_ERROR_A_not_present   (-1)
 
#define COLAMD_ERROR_p_not_present   (-2)
 
#define COLAMD_ERROR_nrow_negative   (-3)
 
#define COLAMD_ERROR_ncol_negative   (-4)
 
#define COLAMD_ERROR_nnz_negative   (-5)
 
#define COLAMD_ERROR_p0_nonzero   (-6)
 
#define COLAMD_ERROR_A_too_small   (-7)
 
#define COLAMD_ERROR_col_length_negative   (-8)
 
#define COLAMD_ERROR_row_index_out_of_bounds   (-9)
 
#define COLAMD_ERROR_out_of_memory   (-10)
 
#define COLAMD_ERROR_internal_error   (-999)
 
#define COLAMD_C(n_col)   ((int) (((n_col) + 1) * sizeof (Colamd_Col) / sizeof (int)))
 
#define COLAMD_R(n_row)   ((int) (((n_row) + 1) * sizeof (Colamd_Row) / sizeof (int)))
 
#define COLAMD_RECOMMENDED(nnz, n_row, n_col)
 

Typedefs

typedef struct Colamd_Col_struct Colamd_Col
 
typedef struct Colamd_Row_struct Colamd_Row
 

Functions

int colamd_recommended (int nnz, int n_row, int n_col)
 
void colamd_set_defaults (double knobs[COLAMD_KNOBS])
 
int colamd (int n_row, int n_col, int Alen, int A[], int p[], double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS])
 
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 *))
 
void colamd_report (int stats[COLAMD_STATS])
 
void symamd_report (int stats[COLAMD_STATS])
 

Detailed Description

Colamd prototypes and definitions.

Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)

All rights reserved.

The source code is distributed under BSD license, see the file License.txt at the top-level directory.

 
   ==========================================================================
   === colamd/symamd prototypes and definitions =============================
   ==========================================================================

   You must include this file (colamd.h) in any routine that uses colamd,
   symamd, or the related macros and definitions.

   Authors:

   The authors of the code itself are Stefan I. Larimore and Timothy A.
   Davis (davis.nosp@m.@cis.nosp@m.e.ufl.nosp@m..edu), University of Florida.  The algorithm was
   developed in collaboration with John Gilbert, Xerox PARC, and Esmond
   Ng, Oak Ridge National Laboratory.

   Date:

   September 8, 2003.  Version 2.3.

   Acknowledgements:

   This work was supported by the National Science Foundation, under
   grants DMS-9504974 and DMS-9803599.

   Notice:

   Copyright (c) 1998-2003 by the University of Florida.
   All Rights Reserved.

   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.

   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. 

   Availability:

   The colamd/symamd library is available at

       http://www.cise.ufl.edu/research/sparse/colamd/

   This is the http://www.cise.ufl.edu/research/sparse/colamd/colamd.h
   file.  It is required by the colamd.c, colamdmex.c, and symamdmex.c
   files, and by any C code that calls the routines whose prototypes are
   listed below, or that uses the colamd/symamd definitions listed below.

Macro Definition Documentation

◆ COLAMD_C

#define COLAMD_C (   n_col)    ((int) (((n_col) + 1) * sizeof (Colamd_Col) / sizeof (int)))

◆ COLAMD_DEFRAG_COUNT

#define COLAMD_DEFRAG_COUNT   2

◆ COLAMD_DENSE_COL

#define COLAMD_DENSE_COL   1

◆ COLAMD_DENSE_ROW

#define COLAMD_DENSE_ROW   0

◆ COLAMD_ERROR_A_not_present

#define COLAMD_ERROR_A_not_present   (-1)

◆ COLAMD_ERROR_A_too_small

#define COLAMD_ERROR_A_too_small   (-7)

◆ COLAMD_ERROR_col_length_negative

#define COLAMD_ERROR_col_length_negative   (-8)

◆ COLAMD_ERROR_internal_error

#define COLAMD_ERROR_internal_error   (-999)

◆ COLAMD_ERROR_ncol_negative

#define COLAMD_ERROR_ncol_negative   (-4)

◆ COLAMD_ERROR_nnz_negative

#define COLAMD_ERROR_nnz_negative   (-5)

◆ COLAMD_ERROR_nrow_negative

#define COLAMD_ERROR_nrow_negative   (-3)

◆ COLAMD_ERROR_out_of_memory

#define COLAMD_ERROR_out_of_memory   (-10)

◆ COLAMD_ERROR_p0_nonzero

#define COLAMD_ERROR_p0_nonzero   (-6)

◆ COLAMD_ERROR_p_not_present

#define COLAMD_ERROR_p_not_present   (-2)

◆ COLAMD_ERROR_row_index_out_of_bounds

#define COLAMD_ERROR_row_index_out_of_bounds   (-9)

◆ COLAMD_INFO1

#define COLAMD_INFO1   4

◆ COLAMD_INFO2

#define COLAMD_INFO2   5

◆ COLAMD_INFO3

#define COLAMD_INFO3   6

◆ COLAMD_KNOBS

#define COLAMD_KNOBS   20

◆ COLAMD_OK

#define COLAMD_OK   (0)

◆ COLAMD_OK_BUT_JUMBLED

#define COLAMD_OK_BUT_JUMBLED   (1)

◆ COLAMD_R

#define COLAMD_R (   n_row)    ((int) (((n_row) + 1) * sizeof (Colamd_Row) / sizeof (int)))

◆ COLAMD_RECOMMENDED

#define COLAMD_RECOMMENDED (   nnz,
  n_row,
  n_col 
)
Value:
( \
((nnz) < 0 || (n_row) < 0 || (n_col) < 0) \
? \
(-1) \
: \
(2 * (nnz) + COLAMD_C (n_col) + COLAMD_R (n_row) + (n_col) + ((nnz) / 5)) \
)
#define COLAMD_C(n_col)
Definition: colamd.h:193
#define COLAMD_R(n_row)
Definition: colamd.h:194

◆ COLAMD_STATS

#define COLAMD_STATS   20

◆ COLAMD_STATUS

#define COLAMD_STATUS   3

Typedef Documentation

◆ Colamd_Col

typedef struct Colamd_Col_struct Colamd_Col

◆ Colamd_Row

typedef struct Colamd_Row_struct Colamd_Row

Function Documentation

◆ colamd()

int colamd ( int  n_row,
int  n_col,
int  Alen,
int  A[],
int  p[],
double  knobs[COLAMD_KNOBS],
int  stats[COLAMD_STATS] 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ colamd_recommended()

int colamd_recommended ( int  nnz,
int  n_row,
int  n_col 
)

◆ colamd_report()

void colamd_report ( int  stats[COLAMD_STATS])
Here is the call graph for this function:

◆ colamd_set_defaults()

void colamd_set_defaults ( double  knobs[COLAMD_KNOBS])

◆ symamd()

int symamd ( int  n,
int  A[],
int  p[],
int  perm[],
double  knobs[COLAMD_KNOBS],
int  stats[COLAMD_STATS],
void *(*)(size_t, size_t)  allocate,
void(*)(void *)  release 
)
Here is the call graph for this function:

◆ symamd_report()

void symamd_report ( int  stats[COLAMD_STATS])
Here is the call graph for this function: