Files
2008-04-15 18:56:58 +01:00

162 lines
4.4 KiB
C

/*
* Copyright 1997, Regents of the University of Minnesota
*
* defs.h
*
* This file contains constant definitions
*
* Started 8/27/94
* George
*
* $Id: defs.h,v 1.1 2003/07/16 15:55:01 karypis Exp $
*
*/
#define METISTITLE " METIS 4.0 Copyright 1998, Regents of the University of Minnesota\n\n"
#define MAXLINE 1280000
#define LTERM (void **) 0 /* List terminator for GKfree() */
#define MAXNCON 16 /* The maximum number of constrains */
#define MAXNOBJ 16 /* The maximum number of objectives */
#define PLUS_GAINSPAN 500 /* Parameters for FM buckets */
#define NEG_GAINSPAN 500
#define HTLENGTH ((1<<11)-1)
/* Meaning of various options[] parameters */
#define OPTION_PTYPE 0
#define OPTION_CTYPE 1
#define OPTION_ITYPE 2
#define OPTION_RTYPE 3
#define OPTION_DBGLVL 4
#define OPTION_OFLAGS 5
#define OPTION_PFACTOR 6
#define OPTION_NSEPS 7
#define OFLAG_COMPRESS 1 /* Try to compress the graph */
#define OFLAG_CCMP 2 /* Find and order connected components */
/* Default options for PMETIS */
#define PMETIS_CTYPE MATCH_SHEM
#define PMETIS_ITYPE IPART_GGPKL
#define PMETIS_RTYPE RTYPE_FM
#define PMETIS_DBGLVL 0
/* Default options for KMETIS */
#define KMETIS_CTYPE MATCH_SHEM
#define KMETIS_ITYPE IPART_PMETIS
#define KMETIS_RTYPE RTYPE_KWAYRANDOM_MCONN
#define KMETIS_DBGLVL 0
/* Default options for OEMETIS */
#define OEMETIS_CTYPE MATCH_SHEM
#define OEMETIS_ITYPE IPART_GGPKL
#define OEMETIS_RTYPE RTYPE_FM
#define OEMETIS_DBGLVL 0
/* Default options for ONMETIS */
#define ONMETIS_CTYPE MATCH_SHEM
#define ONMETIS_ITYPE IPART_GGPKL
#define ONMETIS_RTYPE RTYPE_SEP1SIDED
#define ONMETIS_DBGLVL 0
#define ONMETIS_OFLAGS OFLAG_COMPRESS
#define ONMETIS_PFACTOR -1
#define ONMETIS_NSEPS 1
/* Default options for McPMETIS */
#define McPMETIS_CTYPE MATCH_SHEBM_ONENORM
#define McPMETIS_ITYPE IPART_RANDOM
#define McPMETIS_RTYPE RTYPE_FM
#define McPMETIS_DBGLVL 0
/* Default options for McKMETIS */
#define McKMETIS_CTYPE MATCH_SHEBM_ONENORM
#define McKMETIS_ITYPE IPART_McHPMETIS
#define McKMETIS_RTYPE RTYPE_KWAYRANDOM
#define McKMETIS_DBGLVL 0
/* Default options for KVMETIS */
#define KVMETIS_CTYPE MATCH_SHEM
#define KVMETIS_ITYPE IPART_PMETIS
#define KVMETIS_RTYPE RTYPE_KWAYRANDOM
#define KVMETIS_DBGLVL 0
/* Operations supported by stand-alone code */
#define OP_PMETIS 1
#define OP_KMETIS 2
#define OP_OEMETIS 3
#define OP_ONMETIS 4
#define OP_ONWMETIS 5
#define OP_KVMETIS 6
/* Matching Schemes */
#define MATCH_RM 1
#define MATCH_HEM 2
#define MATCH_SHEM 3
#define MATCH_SHEMKWAY 4
#define MATCH_SHEBM_ONENORM 5
#define MATCH_SHEBM_INFNORM 6
#define MATCH_SBHEM_ONENORM 7
#define MATCH_SBHEM_INFNORM 8
/* Initial partitioning schemes for PMETIS and ONMETIS */
#define IPART_GGPKL 1
#define IPART_GGPKLNODE 2
#define IPART_RANDOM 2
/* Refinement schemes for PMETIS */
#define RTYPE_FM 1
/* Initial partitioning schemes for KMETIS */
#define IPART_PMETIS 1
/* Refinement schemes for KMETIS */
#define RTYPE_KWAYRANDOM 1
#define RTYPE_KWAYGREEDY 2
#define RTYPE_KWAYRANDOM_MCONN 3
/* Refinement schemes for ONMETIS */
#define RTYPE_SEP2SIDED 1
#define RTYPE_SEP1SIDED 2
/* Initial Partitioning Schemes for McKMETIS */
#define IPART_McPMETIS 1 /* Simple McPMETIS */
#define IPART_McHPMETIS 2 /* horizontally relaxed McPMETIS */
#define UNMATCHED -1
#define HTABLE_EMPTY -1
#define NGR_PASSES 4 /* Number of greedy refinement passes */
#define NLGR_PASSES 5 /* Number of GR refinement during IPartition */
#define LARGENIPARTS 8 /* Number of random initial partitions */
#define SMALLNIPARTS 3 /* Number of random initial partitions */
#define COARSEN_FRACTION 0.75 /* Node reduction between succesive coarsening levels */
#define COARSEN_FRACTION2 0.90 /* Node reduction between succesive coarsening levels */
#define UNBALANCE_FRACTION 1.05
#define COMPRESSION_FRACTION 0.85
#define ORDER_UNBALANCE_FRACTION 1.10
#define MMDSWITCH 200
#define HORIZONTAL_IMBALANCE 1.05
/* Debug Levels */
#define DBG_TIME 1 /* Perform timing analysis */
#define DBG_OUTPUT 2
#define DBG_COARSEN 4 /* Show the coarsening progress */
#define DBG_REFINE 8 /* Show info on communication during folding */
#define DBG_IPART 16 /* Show info on initial partition */
#define DBG_MOVEINFO 32 /* Show info on communication during folding */
#define DBG_KWAYPINFO 64 /* Show info on communication during folding */
#define DBG_SEPINFO 128 /* Show info on communication during folding */