=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/global.c,v retrieving revision 1.10 retrieving revision 1.37 diff -u -p -r1.10 -r1.37 --- OpenXM/src/kan96xx/Kan/global.c 2000/02/24 12:33:47 1.10 +++ OpenXM/src/kan96xx/Kan/global.c 2015/09/29 01:52:14 1.37 @@ -1,4 +1,4 @@ -/* global.c $OpenXM: OpenXM/src/kan96xx/Kan/global.c,v 1.9 2000/02/24 00:27:12 takayama Exp $ */ +/* global.c $OpenXM: OpenXM/src/kan96xx/Kan/global.c,v 1.36 2011/10/05 05:46:14 takayama Exp $ */ #include #include #include "datatype.h" @@ -13,22 +13,22 @@ Any setting must keep the relation: L<=M<=N. You must see mmwMult() in poly.c in the above case. Example. L=M=0 means there is no q-variables and difference variables. - L=5, M=N=5 means all variables are q-variables (x0=q). - L=2, M=2, N=5 means x0=q, x1 is q-variable and x2,,,,x4 are - differential variables. - L=0, M=2, N=5 means x0,x1 are difference variables and x2,,,x4 - are differential variables. */ + L=5, M=N=5 means all variables are q-variables (x0=q). + L=2, M=2, N=5 means x0=q, x1 is q-variable and x2,,,,x4 are + differential variables. + L=0, M=2, N=5 means x0,x1 are difference variables and x2,,,x4 + are differential variables. */ /*#define L 0 number of q-variables */ /*#define M 0 number of difference variables */ /*Number of elimination variables */ /*#define LL 0 */ /*#define MM 0 */ - /* x_MM,...,x_{M-1} are eliminated difference variables */ - /* MM < M if you want to use it. MM>=M if you do not use it */ +/* x_MM,...,x_{M-1} are eliminated difference variables */ +/* MM < M if you want to use it. MM>=M if you do not use it */ /*#define NN 9 */ - /*x_NN,...,x_{N-1} are eliminated differential variables */ - /* NN < N if you want to use it. NN>=N if you do not use it. - See the eliminated_standard() in dbm3.c */ +/*x_NN,...,x_{N-1} are eliminated differential variables */ +/* NN < N if you want to use it. NN>=N if you do not use it. + See the eliminated_standard() in dbm3.c */ /* They are not used. @@ -79,6 +79,7 @@ int Commutative = 0; int UseCriterion1 = 0; int UseCriterion2B = 0; int OutputStyle = '*'; +int COutput = 0; /* C sytle output of polynomial */ int Wrap = 0; /* output.c */ int Verbose = 0; int ReduceLowerTerms = 1; @@ -100,23 +101,37 @@ int KSPushEnvMode = 0; int Sugar = 0; int Homogenize_vec = 1; /*x + e (x+1)===>(1) x h + e (x+h) or (0)x + e(x+h) */ int CmoDMSOutputOption = 0; /* Output with - (1) RING_BY_NAME or (0) DMS_OF_N_VARIABLES. - plugin/cmo.c */ + (1) RING_BY_NAME or (0) DMS_OF_N_VARIABLES. + plugin/cmo.c */ int SecureMode = 0; +int RestrictedMode = 0; +int RestrictedMode_saved = 0; +int Ecart = 0; +int EcartAutomaticHomogenization = 0; +int TraceLift = 0; +struct ring *TraceLift_ringmod = NULL; +int DoCancel = 0; +int QuoteMode = 0; +int UseDsmall = 0; /* global variables for stackmachine.c */ int VerboseStack = 1; /* 0 is quiet, 1 is standard, 2 ... */ int DebugStack = 0; -FILE *Fstack = stdout; /* standard output stream - for module: stackmachine */ +FILE *Fstack = NULL; /* Initialized to standard output stream + in stackmachine_init() + for module: stackmachine */ #if defined(sun) /* in case of Solaris, use the following: */ int EnvOfStackMachine[2000]; #else +#if defined(__CYGIWN__) +sigjmp_buf EnvOfStackMachine; +#else jmp_buf EnvOfStackMachine; #endif +#endif struct object NullObject; struct object NoObject; @@ -126,7 +141,7 @@ int Lookup[TYPES][TYPES]; int Quiet = 0; int TimerOn = 0; -char *VersionString = "3.000224"; +char *VersionString = "3.050615"; char *LeftBracket = NULL; char *RightBracket = NULL; @@ -138,17 +153,29 @@ int OXprintMessage = 1; /* referred only from ox_sm1 char *OxSystem = "ox_sm1.plain"; /* Example : ox_sm1.plain */ char *OxSystemVersion = NULL; /* Example : 0.1 */ +/* global variables for kanExport0.c */ +int VerboseK = 1; /* 1 is standard */ +int DebugK = 0; +FILE *Fk = NULL; /* Initialized to stdout in stackmachine_init() */ + stackmachine_init() { int i,j; + extern FILE *BaseFp; + /* GC_init(); */ + GC_INIT(); OxSystemVersion = VersionString; Fstack = stdout; /* initialize output stream */ + Fk = stdout; + BaseFp = stdin; LeftBracket = "["; RightBracket = "]"; /* initialize null object */ NullObject.tag = 0; NullObject.lc.op = NullObject.rc.op = (struct object *)NULL; + NullObject.attr = (struct object *)NULL; /* findUserdictionary returns NoObject if it cannot find the key.*/ NoObject.tag = -1; NoObject.lc.op = NoObject.rc.op = (struct object *)NULL; + NoObject.attr = (struct object *)NULL; /* Initalize lookup table */ for (i=0; i