=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/datatype.h,v retrieving revision 1.1 retrieving revision 1.15 diff -u -p -r1.1 -r1.15 --- OpenXM/src/kan96xx/Kan/datatype.h 1999/10/08 02:12:01 1.1 +++ OpenXM/src/kan96xx/Kan/datatype.h 2018/09/07 00:15:44 1.15 @@ -1,9 +1,12 @@ +/* $OpenXM: OpenXM/src/kan96xx/Kan/datatype.h,v 1.14 2015/09/29 01:52:14 takayama Exp $ */ #include "gmp.h" +#include "gc.h" /* GC */ void *GC_malloc(size_t size); void *GC_realloc(void *p,size_t new); void *sGC_malloc(size_t size); +void *sGC_realloc(void *p,size_t new); void *sGC_realloc2(void *p,size_t old,size_t new); void sGC_free2(void *p,size_t size); void sGC_free(void *p); @@ -14,6 +17,7 @@ int KSset(char *name); int KSpushBinary(int size,char *data); char *KSpopBinary(int *size); void KSstart(); +void KSstart_quiet(); void KSstop(); /*********** You may modify these system constants below **********************/ @@ -28,6 +32,7 @@ void KSstop(); must be larger than AGLIMIT. They are automatically determined by the value of AGLIMIT. */ +#define LARGE_NEGATIVE_NUMBER (-0x7fffffff) /* for 32 bit */ typedef struct listPoly * POLY; typedef struct monomial * MONOMIAL; @@ -62,6 +67,7 @@ struct ring { int cc; char **x; char **D; + char **Dsmall; int *order; /* [i][j] ---> [i*2*N+j] */ int orderMatrixSize; int *from; @@ -72,6 +78,15 @@ struct ring { void *gbListTower; int *outputOrder; char *name; + int weightedHomogenization; + int degreeShiftSize; + int degreeShiftN; + int *degreeShift; + int partialEcart; + int *partialEcartGlobalVarX; + +/* To be used. */ + void *ringInInputForm; }; @@ -155,7 +170,10 @@ struct polySet { int *mark; /* if (mark[i]), then syz[i] is simplified. */ int *serial; /* serial[i]=k ===> g[i] is input[k] */ int size; /* size of this set. i.e., g[0], g[1], ..., g[size-1] */ - int lim; + int lim; + POLY *gh; /* gh[i] = homogenize(g[i]) for ecart division */ + int *gen; /* gen[i] == 1 --> given generators */ + POLY *gmod; /* gmod = g mod p for TraceLift. */ }; struct pair { @@ -173,6 +191,8 @@ struct gradedPolySet { struct polySet **polys; /* polys[0]: grade=0, polys[1]:grade=1, ... */ int maxGrade; /* maximal grade in this set */ int lim; + int gb; /* it is gb or not. */ + int reduced; /* it is reduced gb or not. */ }; struct gradedPairs {