[690e21e] | 1 | #ifndef OPTIONS_H |
---|
| 2 | #define OPTIONS_H |
---|
| 3 | /***************************************** |
---|
| 4 | * * Computer Algebra System SINGULAR * |
---|
| 5 | * *****************************************/ |
---|
| 6 | /* |
---|
| 7 | * ABSTRACT: macros for global options |
---|
| 8 | */ |
---|
[2d5de0e] | 9 | #include "misc/auxiliary.h" /*for BOOLEAN*/ |
---|
[719816] | 10 | /*the general set of std-options : si_opt_1(test) */ |
---|
| 11 | /*the general set of verbose-options : si_opt_2(verbose) */ |
---|
[30c2d97] | 12 | #ifdef __cplusplus |
---|
[aa4d31] | 13 | extern "C" VAR unsigned si_opt_1; //< NOTE: Original option variable name: test |
---|
| 14 | extern "C" VAR unsigned si_opt_2; //< NOTE: Original option variable name: verbose |
---|
[2d5de0e] | 15 | extern "C" BOOLEAN siCntrlc; |
---|
[30c2d97] | 16 | #else |
---|
[a3f0fea] | 17 | EXTERN_VAR unsigned si_opt_1; |
---|
| 18 | EXTERN_VAR unsigned si_opt_2; |
---|
| 19 | EXTERN_VAR BOOLEAN siCntrlc; |
---|
[30c2d97] | 20 | #endif |
---|
[d30a399] | 21 | #define SI_SAVE_OPT(A,B) { A=si_opt_1; B=si_opt_2; } |
---|
| 22 | #define SI_SAVE_OPT1(A) { A=si_opt_1; } |
---|
| 23 | #define SI_SAVE_OPT2(A) { A=si_opt_2; } |
---|
| 24 | #define SI_RESTORE_OPT(A,B) { si_opt_1=A; si_opt_2=B; } |
---|
| 25 | #define SI_RESTORE_OPT1(A) { si_opt_1=A; } |
---|
| 26 | #define SI_RESTORE_OPT2(A) { si_opt_2=A; } |
---|
[30c2d97] | 27 | |
---|
[690e21e] | 28 | /* |
---|
| 29 | ** Set operations (small sets only) |
---|
| 30 | */ |
---|
| 31 | |
---|
| 32 | #define Sy_bit(x) ((unsigned)1<<(x)) |
---|
| 33 | #define Sy_inset(x,s) ((Sy_bit(x)&(s))?TRUE:FALSE) |
---|
[d30a399] | 34 | #define BTEST1(a) Sy_inset((a), si_opt_1) |
---|
| 35 | #define BVERBOSE(a) Sy_inset((a), si_opt_2) |
---|
[690e21e] | 36 | |
---|
| 37 | /* |
---|
| 38 | ** defines for BITSETs |
---|
| 39 | */ |
---|
| 40 | |
---|
[6c4db17] | 41 | #define V_QUIET 0 |
---|
[690e21e] | 42 | #define V_QRING 1 |
---|
| 43 | #define V_SHOW_MEM 2 |
---|
| 44 | #define V_YACC 3 |
---|
| 45 | #define V_REDEFINE 4 |
---|
| 46 | #define V_READING 5 |
---|
| 47 | #define V_LOAD_LIB 6 |
---|
| 48 | #define V_DEBUG_LIB 7 |
---|
| 49 | #define V_LOAD_PROC 8 |
---|
| 50 | #define V_DEF_RES 9 |
---|
[d544b1] | 51 | |
---|
[690e21e] | 52 | #define V_SHOW_USE 11 |
---|
| 53 | #define V_IMAP 12 |
---|
| 54 | #define V_PROMPT 13 |
---|
[c959ed8] | 55 | #define V_NSB 14 |
---|
[690e21e] | 56 | #define V_CONTENTSB 15 |
---|
| 57 | #define V_CANCELUNIT 16 |
---|
| 58 | #define V_MODPSOLVSB 17 |
---|
| 59 | #define V_UPTORADICAL 18 |
---|
| 60 | #define V_FINDMONOM 19 |
---|
| 61 | #define V_COEFSTRAT 20 |
---|
| 62 | #define V_IDLIFT 21 |
---|
| 63 | #define V_LENGTH 22 |
---|
[8bcd9d] | 64 | //#define V_REPORT_STD 23 |
---|
[690e21e] | 65 | /*23: kDebugPrint */ |
---|
[228b631] | 66 | #define V_ALLWARN 24 |
---|
[f6bfc4] | 67 | #define V_INTERSECT_ELIM 25 |
---|
| 68 | #define V_INTERSECT_SYZ 26 |
---|
[48142b] | 69 | #define V_ASSIGN_NONE 27 |
---|
| 70 | /* for tests: 28-30 */ |
---|
[690e21e] | 71 | #define V_DEG_STOP 31 |
---|
| 72 | |
---|
| 73 | |
---|
| 74 | #define OPT_PROT 0 |
---|
| 75 | #define OPT_REDSB 1 |
---|
| 76 | #define OPT_NOT_BUCKETS 2 |
---|
| 77 | #define OPT_NOT_SUGAR 3 |
---|
| 78 | #define OPT_INTERRUPT 4 |
---|
| 79 | #define OPT_SUGARCRIT 5 |
---|
| 80 | #define OPT_DEBUG 6 |
---|
| 81 | #define OPT_REDTHROUGH 7 |
---|
[750e70] | 82 | #define OPT_NO_SYZ_MINIM 8 |
---|
[690e21e] | 83 | #define OPT_RETURN_SB 9 |
---|
| 84 | #define OPT_FASTHC 10 |
---|
| 85 | #define OPT_OLDSTD 20 |
---|
[d544b1] | 86 | |
---|
[690e21e] | 87 | #define OPT_STAIRCASEBOUND 22 |
---|
| 88 | #define OPT_MULTBOUND 23 |
---|
| 89 | #define OPT_DEGBOUND 24 |
---|
| 90 | #define OPT_REDTAIL 25 |
---|
| 91 | #define OPT_INTSTRATEGY 26 |
---|
| 92 | #define OPT_FINDET 27 |
---|
| 93 | #define OPT_INFREDTAIL 28 |
---|
| 94 | #define OPT_SB_1 29 |
---|
| 95 | #define OPT_NOTREGULARITY 30 |
---|
| 96 | #define OPT_WEIGHTM 31 |
---|
| 97 | |
---|
| 98 | /* define ring dependent options */ |
---|
| 99 | #define TEST_RINGDEP_OPTS \ |
---|
| 100 | (Sy_bit(OPT_INTSTRATEGY) | Sy_bit(OPT_REDTHROUGH) | Sy_bit(OPT_REDTAIL)) |
---|
| 101 | |
---|
| 102 | #define TEST_OPT_PROT BTEST1(OPT_PROT) |
---|
| 103 | #define TEST_OPT_REDSB BTEST1(OPT_REDSB) |
---|
| 104 | #define TEST_OPT_NOT_BUCKETS BTEST1(OPT_NOT_BUCKETS) |
---|
| 105 | #define TEST_OPT_NOT_SUGAR BTEST1(OPT_NOT_SUGAR) |
---|
| 106 | #define TEST_OPT_SUGARCRIT BTEST1(OPT_SUGARCRIT) |
---|
| 107 | #define TEST_OPT_DEBUG BTEST1(OPT_DEBUG) |
---|
| 108 | #define TEST_OPT_FASTHC BTEST1(OPT_FASTHC) |
---|
| 109 | #define TEST_OPT_INTSTRATEGY BTEST1(OPT_INTSTRATEGY) |
---|
| 110 | #define TEST_OPT_FINDET BTEST1(OPT_FINDET) |
---|
| 111 | #define TEST_OPT_RETURN_SB BTEST1(OPT_RETURN_SB) |
---|
| 112 | #define TEST_OPT_DEGBOUND BTEST1(OPT_DEGBOUND) |
---|
| 113 | #define TEST_OPT_MULTBOUND BTEST1(OPT_MULTBOUND) |
---|
| 114 | #define TEST_OPT_STAIRCASEBOUND BTEST1(OPT_STAIRCASEBOUND) |
---|
| 115 | #define TEST_OPT_REDTAIL BTEST1(OPT_REDTAIL) |
---|
| 116 | #define TEST_OPT_INFREDTAIL BTEST1(OPT_INFREDTAIL) |
---|
| 117 | #define TEST_OPT_SB_1 BTEST1(OPT_SB_1) |
---|
| 118 | #define TEST_OPT_NOTREGULARITY BTEST1(OPT_NOTREGULARITY) |
---|
| 119 | #define TEST_OPT_WEIGHTM BTEST1(OPT_WEIGHTM) |
---|
| 120 | #define TEST_OPT_REDTHROUGH BTEST1(OPT_REDTHROUGH) |
---|
| 121 | #define TEST_OPT_OLDSTD BTEST1(OPT_OLDSTD) |
---|
[750e70] | 122 | #define TEST_OPT_NO_SYZ_MINIM BTEST1(OPT_NO_SYZ_MINIM) |
---|
| 123 | |
---|
| 124 | |
---|
[690e21e] | 125 | #define TEST_OPT_CONTENTSB BVERBOSE(V_CONTENTSB) |
---|
| 126 | #define TEST_OPT_CANCELUNIT BVERBOSE(V_CANCELUNIT) |
---|
| 127 | #define TEST_OPT_IDLIFT BVERBOSE(V_IDLIFT) |
---|
| 128 | #define TEST_OPT_LENGTH BVERBOSE(V_LENGTH) |
---|
| 129 | #define TEST_V_QRING BVERBOSE(V_QRING) |
---|
[c959ed8] | 130 | #define TEST_V_NSB BVERBOSE(V_NSB) |
---|
[6c4db17] | 131 | #define TEST_V_QUIET BVERBOSE(V_QUIET) |
---|
[9c3e19] | 132 | #define TEST_V_ASSIGN_NONE BVERBOSE(V_ASSIGN_NONE) |
---|
[690e21e] | 133 | |
---|
| 134 | #define TEST_VERB_NSB BVERBOSE(V_NSB) |
---|
| 135 | #define TEST_V_DEG_STOP BVERBOSE(V_DEG_STOP) |
---|
| 136 | #define TEST_V_MODPSOLVSB BVERBOSE(V_MODPSOLVSB) |
---|
| 137 | #define TEST_V_COEFSTRAT BVERBOSE(V_COEFSTRAT) |
---|
| 138 | #define TEST_V_UPTORADICAL BVERBOSE(V_UPTORADICAL) |
---|
| 139 | #define TEST_V_FINDMONOM BVERBOSE(V_FINDMONOM) |
---|
[228b631] | 140 | #define TEST_V_ALLWARN BVERBOSE(V_ALLWARN) |
---|
[f6bfc4] | 141 | #define TEST_V_INTERSECT_ELIM BVERBOSE(V_INTERSECT_ELIM) |
---|
| 142 | #define TEST_V_INTERSECT_SYZ BVERBOSE(V_INTERSECT_SYZ) |
---|
[690e21e] | 143 | |
---|
[30c2d97] | 144 | |
---|
[690e21e] | 145 | #endif |
---|