ColPack
Main/Definitions.h
Go to the documentation of this file.
00001 /************************************************************************************
00002     Copyright (C) 2005-2008 Assefaw H. Gebremedhin, Arijit Tarafdar, Duc Nguyen,
00003     Alex Pothen
00004 
00005     This file is part of ColPack.
00006 
00007     ColPack is free software: you can redistribute it and/or modify
00008     it under the terms of the GNU Lesser General Public License as published
00009     by the Free Software Foundation, either version 3 of the License, or
00010     (at your option) any later version.
00011 
00012     ColPack is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public License
00018     along with ColPack.  If not, see <http://www.gnu.org/licenses/>.
00019 ************************************************************************************/
00020 
00021 /******************************************************************************/
00022 /*                                                                                                                                                        */
00023 /*DEBUG and ERROR Counter Ranges: (OBSOLETE)                                                                                      */
00024 /*                                                                                                                                                        */
00025 /*GraphCore                                                                     1100:1199                                                 */
00026 /*GraphInputOutput                                                      1200:1299                                                 */
00027 /*GraphOrdering                                                         1300:1399                                                 */
00028 /*GraphColoring                                                         1400:1499                                                 */
00029 /*GraphColoringInterface                                        1500:1699                                                 */
00030 /*                                                                                                                                                        */
00031 /*BipartiteGraphCore                                            2100:2199;3100:3199                               */
00032 /*BipartiteGraphInputOutput                                     2200:2299;3200:3299                               */
00033 /*BipartiteGraphPartialOrdering                         2300:2399                                                 */
00034 /*BipartiteGraphPartialColoring                         2400:2499                                                 */
00035 /*BipartiteGraphPartialColoringInterface        2500:2699                                                 */
00036 /*                                                                                                                                                        */
00037 /*BipartiteGraphCovering                                        3300:3399                                                 */
00038 /*BipartiteGraphOrdering                                        3400:3499                                                 */
00039 /*BipartiteGraphBicoloring                                      3500:3599                                                 */
00040 /*BipartiteGraphBicoloringInterface                     3600:3799                                                 */
00041 /*                                                                                                                                                        */
00042 /*StringTokenizer                                                       4100:4199                                                 */
00043 /*DisjointSets                                                          4200:4299                                                 */
00044 /*Timer                                                                         4300:4399                                                 */
00045 /*                                                                                                                                                        */
00046 /*HessianMatrix                                                         5100:5199                                                 */
00047 /******************************************************************************/
00048 
00049 #ifndef DEFINITION_H
00050 #define DEFINITION_H
00051 
00052 #if defined (_WIN32) || defined (__WIN32) || defined (__WIN32__) || defined (WIN32) //Windows OS Predefined Macros
00053 #define ____WINDOWS_OS____
00054 #endif
00055 
00056 #define STEP_DOWN(INPUT) ((INPUT) - 1)
00057 #define STEP_UP(INPUT) ((INPUT) + 1)
00058 
00059 #define _INVALID -2
00060 #define _UNKNOWN -1
00061 #define _FALSE 0
00062 #define _TRUE 1
00063 
00064 #define _OFF 0
00065 #define _ON 1
00066 
00067 #define DISJOINT_SETS _TRUE
00068 
00069 #define STATISTICS _TRUE
00070 
00071 #ifndef ____WINDOWS_OS____
00072 
00073 
00079 #define SYSTEM_TIME
00080 #else
00081 #undef SYSTEM_TIME
00082 #endif
00083 
00084 //define system-dependent directory separator
00085 #ifndef ____WINDOWS_OS____
00086 #define DIR_SEPARATOR "/"
00087 #else
00088 #define DIR_SEPARATOR "\\"
00089 #endif
00090 
00091 //#define DEBUG _UNKNOWN
00092 //#define DEBUG 5103
00093 
00094 // definition for variadic Graph...Interface()
00095 #define SRC_WAIT -1
00096 #define SRC_FILE 0
00097 #define SRC_MEM_ADOLC 1
00098 #define SRC_MEM_ADIC 2
00099 #define SRC_MEM_SSF 3
00100 #define SRC_MEM_CSR 4
00101 
00102 
00103 enum boolean {FALSE=0, TRUE};
00104 
00105 //enum _INPUT_FORMAT {MATRIX_MARKET, METIS, HARWELL_BOEING};
00106 
00107 //enum _VERTEX_ORDER {NATURAL, LARGEST_FIRST, DYNAMIC_LARGEST_FIRST, DISTANCE_TWO_LARGEST_FIRST, SMALLEST_LAST, DISTANCE_TWO_SMALLEST_LAST, INCIDENCE_DEGREE, DISTANCE_TWO_INCIDENCE_DEGREE};
00108 
00109 //enum _COLORING_STYLE {DISTANCE_ONE, DISTANCE_TWO, NAIVE_STAR, RESTRICTED_STAR, STAR, ACYCLIC, TRIANGULAR};
00110 
00111 //enum _BIPARTITE_VERTEX_ORDER{NATURAL, LARGEST_FIRST, SELECTIVE_LARGEST_FIRST, DYNAMIC_LARGEST_FIRST, ROW_LARGEST_FIRST, COLUMN_LARGEST_FIRST, SMALLEST_LAST, SELECTIVE_SMALLEST_LAST, ROW_SMALLEST_LAST, COLUMN_SMALLEST_LAST, INCIDENCE_DEGREE, SELECTIVE_INCIDENCE_DEGREE, ROW_INCIDENCE_DEGREE, COLUMN_INCIDENCE_DEGREE};
00112 
00113 //enum _BIPARTITE_COLORING_STYLE{ROW_PARTIAL_DISTANCE_TWO, COLUMN_PARTIAL_DISTANCE_TWO, LEFT_STAR, RIGHT_STAR, MINIMAL_COVER_STAR, MINIMAL_COVER_MODIFIED_STAR, IMPLICIT_COVER_STAR, IMPLICT_COVER_CONSERVATIVE_STAR, IMPLICIT_COVER_RESTRICTED_STAR, IMPLICIT_COVER_GREEDY_STAR, IMPLICIT_COVER_ACYCLIC};
00114 
00115 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines