Annotation of OpenXM/src/kan96xx/Kan/global.c, Revision 1.1
1.1 ! maekawa 1: /* global.c */
! 2: #include <stdio.h>
! 3: #include <setjmp.h>
! 4: #include "datatype.h"
! 5: #include "stackm.h"
! 6: #include "lookup.h"
! 7:
! 8: /*-------- variables to define a ring ----------------*/
! 9: /*
! 10: The numbers L,M, LL,MM,NN are set in setUpRing() in setupring.c now.
! 11:
! 12: Be careful when you do not use one of three type variables.
! 13: Any setting must keep the relation: L<=M<=N.
! 14: You must see mmwMult() in poly.c in the above case.
! 15: Example. L=M=0 means there is no q-variables and difference variables.
! 16: L=5, M=N=5 means all variables are q-variables (x0=q).
! 17: L=2, M=2, N=5 means x0=q, x1 is q-variable and x2,,,,x4 are
! 18: differential variables.
! 19: L=0, M=2, N=5 means x0,x1 are difference variables and x2,,,x4
! 20: are differential variables. */
! 21: /*#define L 0 number of q-variables */
! 22: /*#define M 0 number of difference variables */
! 23: /*Number of elimination variables */
! 24: /*#define LL 0 */
! 25: /*#define MM 0 */
! 26: /* x_MM,...,x_{M-1} are eliminated difference variables */
! 27: /* MM < M if you want to use it. MM>=M if you do not use it */
! 28: /*#define NN 9 */
! 29: /*x_NN,...,x_{N-1} are eliminated differential variables */
! 30: /* NN < N if you want to use it. NN>=N if you do not use it.
! 31: See the eliminated_standard() in dbm3.c */
! 32:
! 33:
! 34: /* They are not used.
! 35: int N = 6;
! 36: int L = 1;
! 37: int M = 1;
! 38: int C = 1;
! 39: int NN = 5;
! 40: int MM = 1;
! 41: int LL = 1;
! 42: int CC = 1;
! 43: */
! 44:
! 45:
! 46: /********** These variables are set in setUpRing() ***********************/
! 47: int Md = 0; /* if Md=1, then x_NN, ..., x_{N-1} are eliminated variables*/
! 48: int Med = 0; /* if Med=1, then x_MM, ..., x_{M-1} are eliminated variables*/
! 49: int Mq = 0; /* if Mq=1, then x_LL, ..., x_{L-1} are eliminated variables*/
! 50:
! 51: char **TransX; /* name of variables */
! 52: char **TransD;
! 53: int *Order; /* order matrix */
! 54:
! 55: int Msize = 0;
! 56: /*int P = 32609; */ /* characteristic */
! 57: /* ------------------ end of variables for the ring -------------- */
! 58:
! 59: struct ring SmallRing;
! 60: struct ring *SmallRingp = &SmallRing;
! 61:
! 62: struct ring *CurrentRingp = (struct ring *)0;
! 63:
! 64: struct ring *SyzRingp = (struct ring *)0;
! 65:
! 66: MP_INT *Mp_one;
! 67: MP_INT *Mp_zero;
! 68: MP_INT Mp_work_iiComb;
! 69: MP_INT Mp_work_iiPower;
! 70: MP_INT Mp_work_iiPoch;
! 71:
! 72: struct coeff *UniversalZero;
! 73: struct coeff *UniversalOne;
! 74:
! 75: /*******************************************************************/
! 76: int History = 1; /* get a transformation matrix or not */
! 77:
! 78: int Commutative = 0;
! 79: int UseCriterion1 = 0;
! 80: int UseCriterion2B = 0;
! 81: int OutputStyle = '*';
! 82: int Wrap = 0; /* output.c */
! 83: int Verbose = 0;
! 84: int ReduceLowerTerms = 1;
! 85: int Criterion2B = 0;
! 86: int Criterion2M = 0;
! 87: int Criterion2F = 0;
! 88: int Statistics = 0;
! 89: int CheckHomogenization = 1;
! 90: int ErrorMessageMode = 0;
! 91: int WarningMessageMode = 0;
! 92: int CatchCtrlC = 0;
! 93: int Strict = 0; /* It is used warning. */
! 94: int Strict2 = 0; /* It is used in putDictionary */
! 95: extern struct dictionary UserDictionary[];
! 96: int SigIgn = 0;
! 97: int StopDegree = 0x7fff;
! 98: int KSPushEnvMode = 0;
! 99: int Sugar = 0;
! 100: int Homogenize_vec = 1; /*x + e (x+1)===>(1) x h + e (x+h) or (0)x + e(x+h) */
! 101: int CmoDMSOutputOption = 0; /* Output with
! 102: (1) RING_BY_NAME or (0) DMS_OF_N_VARIABLES.
! 103: plugin/cmo.c */
! 104:
! 105: /* global variables for stackmachine.c */
! 106: int VerboseStack = 1; /* 0 is quiet, 1 is standard, 2 ... */
! 107: int DebugStack = 0;
! 108:
! 109: FILE *Fstack = stdout; /* standard output stream
! 110: for module: stackmachine */
! 111:
! 112: #if defined(sun)
! 113: /* in case of Solaris, use the following: */
! 114: int EnvOfStackMachine[2000];
! 115: #else
! 116: jmp_buf EnvOfStackMachine;
! 117: #endif
! 118:
! 119: struct object NullObject;
! 120: struct object NoObject;
! 121:
! 122: int Lookup[TYPES][TYPES];
! 123:
! 124: int Quiet = 0;
! 125: int TimerOn = 0;
! 126:
! 127: char *VersionString = "2.990914";
! 128:
! 129: int AvoidTheSameRing = 1;
! 130: int DebugCMO = 0; /* plugin/cmo.c */
! 131: int OXprintMessage = 1; /* referred only from ox_sm1 plugin/ox.hh */
! 132:
! 133: char *OxSystem = "ox_sm1.plain"; /* Example : ox_sm1.plain */
! 134: char *OxSystemVersion = NULL; /* Example : 0.1 */
! 135:
! 136: stackmachine_init() {
! 137: int i,j;
! 138: OxSystemVersion = VersionString;
! 139: Fstack = stdout; /* initialize output stream */
! 140: /* initialize null object */
! 141: NullObject.tag = 0;
! 142: NullObject.lc.op = NullObject.rc.op = (struct object *)NULL;
! 143: /* findUserdictionary returns NoObject if it cannot find the key.*/
! 144: NoObject.tag = -1;
! 145: NoObject.lc.op = NoObject.rc.op = (struct object *)NULL;
! 146: /* Initalize lookup table */
! 147: for (i=0; i<TYPES; i++) {
! 148: for (j=0; j<TYPES; j++)
! 149: Lookup[i][j] = i*TYPES + j; /* Refer to mklookup.c */
! 150: }
! 151: /* Initialize hashing */
! 152: hashInitialize(UserDictionary);
! 153:
! 154: initClassDataBase();
! 155:
! 156: }
! 157:
! 158:
! 159: stackmachine_close() {
! 160: /* close output stream */
! 161: }
! 162:
! 163:
! 164: /* global variables for kanExport0.c */
! 165: int VerboseK = 1; /* 1 is standard */
! 166: int DebugK = 0;
! 167: FILE *Fk = stdout;
! 168:
! 169: Kclose() {
! 170: /* close Fk */
! 171: }
! 172:
! 173:
! 174:
! 175:
! 176:
! 177:
! 178:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>