The R Project SVN R-packages

Rev

Blame | Last modification | View Log | Download | RSS feed

/*
 * 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/12/31 21:32:30 bates Exp $
 *
 */

#define METISTITLE              "  METIS 4.0.1 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 */