"Fossies" - the Fresh Open Source Software Archive

Member "heaplayers-351/benchmarks/espresso/main.h" (19 Sep 2003, 3917 Bytes) of package /linux/misc/old/heaplayers_3_5_1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "main.h" see the Fossies "Dox" file reference documentation.

    1 enum keys {
    2     KEY_ESPRESSO, KEY_PLA_verify, KEY_check, KEY_contain, KEY_d1merge,
    3     KEY_disjoint, KEY_dsharp, KEY_echo, KEY_essen, KEY_exact, KEY_expand,
    4     KEY_gasp, KEY_intersect, KEY_irred, KEY_lexsort, KEY_make_sparse,
    5     KEY_map, KEY_mapdc, KEY_minterms, KEY_opo, KEY_opoall,
    6     KEY_pair, KEY_pairall, KEY_primes, KEY_qm, KEY_reduce, KEY_sharp,
    7     KEY_simplify, KEY_so, KEY_so_both, KEY_stats, KEY_super_gasp, KEY_taut,
    8     KEY_test, KEY_equiv, KEY_union, KEY_verify, KEY_MANY_ESPRESSO,
    9     KEY_separate, KEY_xor, KEY_d1merge_in, KEY_fsm,
   10     KEY_unknown
   11 };
   12 
   13 /* Lookup table for program options */
   14 struct {
   15     char *name;
   16     enum keys key;
   17     int num_plas;
   18     bool needs_offset;
   19     bool needs_dcset;
   20 } option_table [] = {
   21     /* ways to minimize functions */
   22     "ESPRESSO", KEY_ESPRESSO, 1, TRUE, TRUE,    /* must be first */
   23     "many", KEY_MANY_ESPRESSO, 1, TRUE, TRUE,
   24     "exact", KEY_exact, 1, TRUE, TRUE,
   25     "qm", KEY_qm, 1, TRUE, TRUE,
   26     "single_output", KEY_so, 1, TRUE, TRUE,
   27     "so", KEY_so, 1, TRUE, TRUE,
   28     "so_both", KEY_so_both, 1, TRUE, TRUE,
   29     "simplify", KEY_simplify, 1, FALSE, FALSE,
   30     "echo", KEY_echo, 1, FALSE, FALSE,
   31 
   32     /* output phase assignment and assignment of inputs to two-bit decoders */
   33     "opo", KEY_opo, 1, TRUE, TRUE,
   34     "opoall", KEY_opoall, 1, TRUE, TRUE,
   35     "pair", KEY_pair, 1, TRUE, TRUE,
   36     "pairall", KEY_pairall, 1, TRUE, TRUE,
   37 
   38     /* Ways to check covers */
   39     "check", KEY_check, 1, TRUE, TRUE,
   40     "stats", KEY_stats, 1, FALSE, FALSE,
   41     "verify", KEY_verify, 2, FALSE, TRUE,
   42     "PLAverify", KEY_PLA_verify, 2, FALSE, TRUE,
   43 
   44     /* hacks */
   45     "equiv", KEY_equiv, 1, TRUE, TRUE,
   46     "map", KEY_map, 1, FALSE, FALSE,
   47     "mapdc", KEY_mapdc, 1, FALSE, FALSE,
   48     "fsm", KEY_fsm, 1, FALSE, TRUE,
   49 
   50     /* the basic boolean operations on covers */
   51     "contain", KEY_contain, 1, FALSE, FALSE,
   52     "d1merge", KEY_d1merge, 1, FALSE, FALSE,
   53     "d1merge_in", KEY_d1merge_in, 1, FALSE, FALSE,
   54     "disjoint", KEY_disjoint, 1, TRUE, FALSE,
   55     "dsharp", KEY_dsharp, 2, FALSE, FALSE,
   56     "intersect", KEY_intersect, 2, FALSE, FALSE,
   57     "minterms", KEY_minterms, 1, FALSE, FALSE,
   58     "primes", KEY_primes, 1, FALSE, TRUE,
   59     "separate", KEY_separate, 1, TRUE, TRUE,
   60     "sharp", KEY_sharp, 2, FALSE, FALSE,
   61     "union", KEY_union, 2, FALSE, FALSE,
   62     "xor", KEY_xor, 2, TRUE, TRUE,
   63 
   64     /* debugging only -- call each step of the espresso algorithm */
   65     "essen", KEY_essen, 1, FALSE, TRUE,
   66     "expand", KEY_expand, 1, TRUE, FALSE,
   67     "gasp", KEY_gasp, 1, TRUE, TRUE,
   68     "irred", KEY_irred, 1, FALSE, TRUE,
   69     "make_sparse", KEY_make_sparse, 1, TRUE, TRUE,
   70     "reduce", KEY_reduce, 1, FALSE, TRUE,
   71     "taut", KEY_taut, 1, FALSE, FALSE,
   72     "super_gasp", KEY_super_gasp, 1, TRUE, TRUE,
   73     "lexsort", KEY_lexsort, 1, FALSE, FALSE,
   74     "test", KEY_test, 1, TRUE, TRUE,
   75     0, KEY_unknown, 0, FALSE, FALSE             /* must be last */
   76 };
   77 
   78 
   79 struct {
   80     char *name;
   81     int value;
   82 } debug_table[] = {
   83     "", EXPAND + ESSEN + IRRED + REDUCE + SPARSE + GASP + SHARP + MINCOV,
   84     "compl",   COMPL,  "essen",       ESSEN,
   85     "expand",  EXPAND, "expand1",     EXPAND1|EXPAND,
   86     "irred",   IRRED,  "irred1",      IRRED1|IRRED,
   87     "reduce",  REDUCE, "reduce1",     REDUCE1|REDUCE,
   88     "mincov",  MINCOV, "mincov1",     MINCOV1|MINCOV,
   89     "sparse",  SPARSE, "sharp",       SHARP,
   90     "taut",    TAUT,   "gasp",        GASP,
   91     "exact",   EXACT,
   92     0,
   93 };
   94 
   95 
   96 struct {
   97     char *name;
   98     int *variable;
   99     int value;
  100 } esp_opt_table[] = {
  101     "eat", &echo_comments, FALSE,
  102     "eatdots", &echo_unknown_commands, FALSE,
  103     "fast", &single_expand, TRUE,
  104     "kiss", &kiss, TRUE,
  105     "ness", &remove_essential, FALSE,
  106     "nirr", &force_irredundant, FALSE,
  107     "nunwrap", &unwrap_onset, FALSE,
  108     "onset", &recompute_onset, TRUE,
  109     "pos", &pos, TRUE,
  110     "random", &use_random_order, TRUE,
  111     "strong", &use_super_gasp, TRUE,
  112     0,
  113 };