source: git/libpolys/misc/options.h @ aa4d31

spielwiese
Last change on this file since aa4d31 was aa4d31, checked in by Reimer Behrends <behrends@…>, 5 years ago
parallel preprocessor-related fixes.
  • Property mode set to 100644
File size: 4.8 KB
Line 
1#ifndef OPTIONS_H
2#define OPTIONS_H
3/*****************************************
4 * *  Computer Algebra System SINGULAR      *
5 * *****************************************/
6/*
7 * ABSTRACT: macros for global options
8 */
9#include "misc/auxiliary.h" /*for BOOLEAN*/
10/*the general set of std-options : si_opt_1(test) */
11/*the general set of verbose-options : si_opt_2(verbose) */
12#ifdef __cplusplus
13extern "C" VAR unsigned si_opt_1; //< NOTE: Original option variable name: test
14extern "C" VAR unsigned si_opt_2; //< NOTE: Original option variable name: verbose
15extern "C" BOOLEAN siCntrlc;
16#else
17EXTERN_VAR unsigned si_opt_1;
18EXTERN_VAR unsigned si_opt_2;
19EXTERN_VAR BOOLEAN siCntrlc;
20#endif
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; }
27
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)
34#define BTEST1(a)     Sy_inset((a), si_opt_1)
35#define BVERBOSE(a)   Sy_inset((a), si_opt_2)
36
37/*
38** defines for BITSETs
39*/
40
41#define V_QUIET       0
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
51
52#define V_SHOW_USE   11
53#define V_IMAP       12
54#define V_PROMPT     13
55#define V_NSB        14
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
64//#define V_REPORT_STD 23
65/*23: kDebugPrint */
66#define V_ALLWARN    24
67#define V_INTERSECT_ELIM 25
68#define V_INTERSECT_SYZ 26
69#define V_ASSIGN_NONE 27
70/* for tests: 28-30 */
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
82#define OPT_NO_SYZ_MINIM   8
83#define OPT_RETURN_SB      9
84#define OPT_FASTHC        10
85#define OPT_OLDSTD        20
86
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)
122#define TEST_OPT_NO_SYZ_MINIM      BTEST1(OPT_NO_SYZ_MINIM)
123
124
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)
130#define TEST_V_NSB                 BVERBOSE(V_NSB)
131#define TEST_V_QUIET               BVERBOSE(V_QUIET)
132#define TEST_V_ASSIGN_NONE         BVERBOSE(V_ASSIGN_NONE)
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)
140#define TEST_V_ALLWARN             BVERBOSE(V_ALLWARN)
141#define TEST_V_INTERSECT_ELIM      BVERBOSE(V_INTERSECT_ELIM)
142#define TEST_V_INTERSECT_SYZ       BVERBOSE(V_INTERSECT_SYZ)
143
144
145#endif
Note: See TracBrowser for help on using the repository browser.