=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/gradedset.h,v retrieving revision 1.1.1.1 retrieving revision 1.9 diff -u -p -r1.1.1.1 -r1.9 --- OpenXM/src/kan96xx/Kan/gradedset.h 1999/10/08 02:12:02 1.1.1.1 +++ OpenXM/src/kan96xx/Kan/gradedset.h 2020/10/06 11:33:46 1.9 @@ -1,3 +1,4 @@ +/* $OpenXM: OpenXM/src/kan96xx/Kan/gradedset.h,v 1.8 2005/06/16 06:54:55 takayama Exp $ */ /* gradedset.h */ #define max(a,b) (a>b?a:b) @@ -36,9 +37,12 @@ int countPairs(struct gradedPairs *grD); int countGradedPolySet(struct gradedPolySet *grD); struct gradedPolySet *gradedPolySetCopy(struct gradedPolySet *grG); int deletePairByCriterion2B(struct gradedPairs *grD,POLY gt,struct gradedPolySet *grG); +int markGeneratorInG(struct gradedPolySet *g,int grade,int index); +int clearGmod(struct gradedPolySet *g); /* red.c */ struct spValue (*sp)(POLY f,POLY g); +struct spValue spZero(void); int (*isReducible)(POLY f,POLY g); POLY (*reduction1)(POLY f,POLY g,int needSyz,POLY *cc,POLY *cg); /* if needSyz, then result = *cc f + *cg g. */ @@ -69,7 +73,16 @@ POLY lcm_gen(POLY f,POLY g); struct spValue sp_gen(POLY f,POLY g); struct spValue sp_q(POLY f,POLY g); int grade_gen(POLY f); +POLY reductionCdr_except_grd_i(POLY f,struct gradedPolySet *gset, + int needSyz,struct syz0 *syzp, + int grd,int i, int *reduced); + /* Polynomial at (grd,i) is not used for reduction. + if del[j] == 1, then the attached polynomial is not used for reduction.*/ +/* ecart.c */ +POLY reduction_ecart(POLY f,struct gradedPolySet *gset, + int needSyz,struct syz0 *syzp); + /* constructor */ POLY toSyzPoly(POLY cg,int grade,int index); struct coeff *toSyzCoeff(POLY f); @@ -79,21 +92,23 @@ void initSyzRingp(void); struct gradedPolySet *(*groebner)(struct arrayOfPOLY *f, int needBack, int needSyz, struct pair **grP, - int countDown,int forceReduction); + int countDown,int forceReduction,int reduceOnly,int gbCheck); struct gradedPolySet *groebner_gen(struct arrayOfPOLY *f, int needBack, int needSyz, struct pair **grP, - int countDown,int forceReduction); + int countDown,int forceReduction,int reduceOnly,int gbCheck); struct gradedPairs *updatePairs(struct gradedPairs *grD, POLY gt, int gtGrade, int t, struct gradedPolySet *grG); /* add gt to grD. gt is indexed by (gtGrade,t) */ +void toReducedBasis(struct gradedPolySet *grP,int needBack, int needSyz); + /* gbGM.c */ struct gradedPolySet *groebner_gm(struct arrayOfPOLY *f, int needBack, int needSyz, struct pair **grP, - int countDown,int forceReduction); + int countDown,int forceReduction,int reduceOnly,int gbCheck); /* syz0 */ void simplifyBT(int grd,int index, struct gradedPolySet *grG); @@ -136,6 +151,17 @@ void errorSyz0(char *s); struct arrayOfPOLY *syzPolyToArrayOfPOLY(int size,POLY f, struct gradedPolySet *grG); /* f is in SyzRingp. */ + +int criterion1(POLY f,POLY g,POLY lc); +struct gradedPolySet *groebner_gen( + struct arrayOfPOLY *f, + int needBack, + int needSyz, + struct pair **grP, /* if (needSyz), it is set. */ + int countDown, + int forceReduction, + int reduceOnly, + int gbCheck); #define checkRingSp(f,g,r) {\