/usr/include/trilinos/trilinos_colamd.h is in libtrilinos-trilinosss-dev 12.12.1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | /* ========================================================================== */
/* === trilinos_colamd/symamd prototypes and definitions ============================= */
/* ========================================================================== */
/* TRILINOS_COLAMD / SYMAMD include file
You must include this file (trilinos_colamd.h) in any routine that uses trilinos_colamd,
symamd, or the related macros and definitions.
Authors:
The authors of the code itself are Stefan I. Larimore and Timothy A.
Davis (davis at cise.ufl.edu), University of Florida. The algorithm was
developed in collaboration with John Gilbert, Xerox PARC, and Esmond
Ng, Oak Ridge National Laboratory.
Acknowledgements:
This work was supported by the National Science Foundation, under
grants DMS-9504974 and DMS-9803599.
Notice:
Copyright (c) 1998-2007, Timothy A. Davis, 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 TRILINOS_COLAMD
or any modified version of TRILINOS_COLAMD.
Availability:
The trilinos_colamd/symamd library is available at
http://www.cise.ufl.edu/research/sparse/trilinos_colamd/
This is the http://www.cise.ufl.edu/research/sparse/trilinos_colamd/colamd.h
file. It is required by the trilinos_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 trilinos_colamd/symamd definitions listed below.
*/
#ifndef TRILINOS_COLAMD_H
#define TRILINOS_COLAMD_H
/* make it easy for C++ programs to include TRILINOS_COLAMD */
#ifdef __cplusplus
extern "C" {
#endif
/* ========================================================================== */
/* === Include files ======================================================== */
/* ========================================================================== */
#include <stdlib.h>
/* ========================================================================== */
/* === TRILINOS_COLAMD version ======================================================= */
/* ========================================================================== */
/* TRILINOS_COLAMD Version 2.4 and later will include the following definitions.
* As an example, to test if the version you are using is 2.4 or later:
*
* #ifdef TRILINOS_COLAMD_VERSION
* if (TRILINOS_COLAMD_VERSION >= TRILINOS_COLAMD_VERSION_CODE (2,4)) ...
* #endif
*
* This also works during compile-time:
*
* #if defined(TRILINOS_COLAMD_VERSION) && (COLAMD_VERSION >= TRILINOS_COLAMD_VERSION_CODE (2,4))
* printf ("This is version 2.4 or later\n") ;
* #else
* printf ("This is an early version\n") ;
* #endif
*
* Versions 2.3 and earlier of TRILINOS_COLAMD do not include a #define'd version number.
*/
#define TRILINOS_COLAMD_DATE "May 31, 2007"
#define TRILINOS_COLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
#define TRILINOS_COLAMD_MAIN_VERSION 2
#define TRILINOS_COLAMD_SUB_VERSION 7
#define TRILINOS_COLAMD_SUBSUB_VERSION 0
#define TRILINOS_COLAMD_VERSION \
TRILINOS_COLAMD_VERSION_CODE(TRILINOS_COLAMD_MAIN_VERSION,TRILINOS_COLAMD_SUB_VERSION)
/* ========================================================================== */
/* === Knob and statistics definitions ====================================== */
/* ========================================================================== */
/* size of the knobs [ ] array. Only knobs [0..1] are currently used. */
#define TRILINOS_COLAMD_KNOBS 20
/* number of output statistics. Only stats [0..6] are currently used. */
#define TRILINOS_COLAMD_STATS 20
/* knobs [0] and stats [0]: dense row knob and output statistic. */
#define TRILINOS_COLAMD_DENSE_ROW 0
/* knobs [1] and stats [1]: dense column knob and output statistic. */
#define TRILINOS_COLAMD_DENSE_COL 1
/* knobs [2]: aggressive absorption */
#define TRILINOS_COLAMD_AGGRESSIVE 2
/* stats [2]: memory defragmentation count output statistic */
#define TRILINOS_COLAMD_DEFRAG_COUNT 2
/* stats [3]: trilinos_colamd status: zero OK, > 0 warning or notice, < 0 error */
#define TRILINOS_COLAMD_STATUS 3
/* stats [4..6]: error info, or info on jumbled columns */
#define TRILINOS_COLAMD_INFO1 4
#define TRILINOS_COLAMD_INFO2 5
#define TRILINOS_COLAMD_INFO3 6
/* error codes returned in stats [3]: */
#define TRILINOS_COLAMD_OK (0)
#define TRILINOS_COLAMD_OK_BUT_JUMBLED (1)
#define TRILINOS_COLAMD_ERROR_A_not_present (-1)
#define TRILINOS_COLAMD_ERROR_p_not_present (-2)
#define TRILINOS_COLAMD_ERROR_nrow_negative (-3)
#define TRILINOS_COLAMD_ERROR_ncol_negative (-4)
#define TRILINOS_COLAMD_ERROR_nnz_negative (-5)
#define TRILINOS_COLAMD_ERROR_p0_nonzero (-6)
#define TRILINOS_COLAMD_ERROR_A_too_small (-7)
#define TRILINOS_COLAMD_ERROR_col_length_negative (-8)
#define TRILINOS_COLAMD_ERROR_row_index_out_of_bounds (-9)
#define TRILINOS_COLAMD_ERROR_out_of_memory (-10)
#define TRILINOS_COLAMD_ERROR_internal_error (-999)
/* ========================================================================== */
/* === Prototypes of user-callable routines ================================= */
/* ========================================================================== */
/* define UF_long */
#include "trilinos_UFconfig.h"
size_t trilinos_colamd_recommended /* returns recommended value of Alen, */
/* or 0 if input arguments are erroneous */
(
int nnz, /* nonzeros in A */
int n_row, /* number of rows in A */
int n_col /* number of columns in A */
) ;
size_t trilinos_colamd_l_recommended /* returns recommended value of Alen, */
/* or 0 if input arguments are erroneous */
(
UF_long nnz, /* nonzeros in A */
UF_long n_row, /* number of rows in A */
UF_long n_col /* number of columns in A */
) ;
void trilinos_colamd_set_defaults /* sets default parameters */
( /* knobs argument is modified on output */
double knobs [TRILINOS_COLAMD_KNOBS] /* parameter settings for trilinos_colamd */
) ;
void trilinos_colamd_l_set_defaults /* sets default parameters */
( /* knobs argument is modified on output */
double knobs [TRILINOS_COLAMD_KNOBS] /* parameter settings for trilinos_colamd */
) ;
int trilinos_colamd /* returns (1) if successful, (0) otherwise*/
( /* A and p arguments are modified on output */
int n_row, /* number of rows in A */
int n_col, /* number of columns in A */
int Alen, /* size of the array A */
int A [], /* row indices of A, of size Alen */
int p [], /* column pointers of A, of size n_col+1 */
double knobs [TRILINOS_COLAMD_KNOBS],/* parameter settings for trilinos_colamd */
int stats [TRILINOS_COLAMD_STATS] /* trilinos_colamd output statistics and error codes */
) ;
UF_long trilinos_colamd_l /* returns (1) if successful, (0) otherwise*/
( /* A and p arguments are modified on output */
UF_long n_row, /* number of rows in A */
UF_long n_col, /* number of columns in A */
UF_long Alen, /* size of the array A */
UF_long A [], /* row indices of A, of size Alen */
UF_long p [], /* column pointers of A, of size n_col+1 */
double knobs [TRILINOS_COLAMD_KNOBS],/* parameter settings for trilinos_colamd */
UF_long stats [TRILINOS_COLAMD_STATS]/* trilinos_colamd output statistics and error codes */
) ;
int trilinos_symamd /* return (1) if OK, (0) otherwise */
(
int n, /* number of rows and columns of A */
int A [], /* row indices of A */
int p [], /* column pointers of A */
int perm [], /* output permutation, size n_col+1 */
double knobs [TRILINOS_COLAMD_KNOBS], /* parameters (uses defaults if NULL) */
int stats [TRILINOS_COLAMD_STATS], /* output statistics and error codes */
void * (*allocate) (size_t, size_t),
/* pointer to calloc (ANSI C) or */
/* mxCalloc (for MATLAB mexFunction) */
void (*release) (void *)
/* pointer to free (ANSI C) or */
/* mxFree (for MATLAB mexFunction) */
) ;
UF_long trilinos_symamd_l /* return (1) if OK, (0) otherwise */
(
UF_long n, /* number of rows and columns of A */
UF_long A [], /* row indices of A */
UF_long p [], /* column pointers of A */
UF_long perm [], /* output permutation, size n_col+1 */
double knobs [TRILINOS_COLAMD_KNOBS], /* parameters (uses defaults if NULL) */
UF_long stats [TRILINOS_COLAMD_STATS], /* output statistics and error codes */
void * (*allocate) (size_t, size_t),
/* pointer to calloc (ANSI C) or */
/* mxCalloc (for MATLAB mexFunction) */
void (*release) (void *)
/* pointer to free (ANSI C) or */
/* mxFree (for MATLAB mexFunction) */
) ;
void trilinos_colamd_report
(
int stats [TRILINOS_COLAMD_STATS]
) ;
void trilinos_colamd_l_report
(
UF_long stats [TRILINOS_COLAMD_STATS]
) ;
void trilinos_symamd_report
(
int stats [TRILINOS_COLAMD_STATS]
) ;
void trilinos_symamd_l_report
(
UF_long stats [TRILINOS_COLAMD_STATS]
) ;
#ifndef EXTERN
#define EXTERN extern
#endif
EXTERN int (*trilinos_colamd_printf) (const char *, ...) ;
#ifdef __cplusplus
}
#endif
#endif /* TRILINOS_COLAMD_H */
|