[BACK]Return to global.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

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>