Annotation of OpenXM/src/kan96xx/Kan/trash.c, Revision 1.1.1.1
1.1 maekawa 1: struct object gradedPolySetToGradedArray(struct gradedPolySet *gps,
2: int keepRedundant);
3: struct gradedPolySet *gradedArrayToGradedPolySet(struct object ob);
4:
5: struct object gradedPolySetToGradedArray(gps,keepRedundant)
6: struct gradedPolySet *gps;
7: int keepRedundant;
8: {
9: struct object ob,vec;
10: int i;
11: if (gps == (struct gradedPolySet *)NULL) return(NullObject);
12: ob = newObjectArray(gps->maxGrade +1);
13: vec = newObjectArray(gps->maxGrade);
14: for (i=0; i<gps->maxGrade; i++) {
15: putoa(vec,i,KpoInteger(i));
16: putoa(ob,i+1,polySetToArray(gps->polys[i],keepRedundant));
17: }
18: putoa(ob,0,vec);
19: return(ob);
20: }
21:
22: struct gradedPolySet *gradedArrayToGradedPolySet(ob)
23: struct object ob;
24: {
25: int n,max,i,j;
26: struct object vec,gvec;
27: struct gradedPolySet *grG;
28: POLY f;
29: int grd,ind;
30: if (ob.tag != Sarray) errorKan1("%s\n","gradedArrayToGradedPolySet(): the argument must be an array.");
31: n = getoaSize(ob);
32: if (n<2) return(arrayToGradedPolySet(ob));
33: if (getoa(ob,0).tag != Sarray) return(arrayToGradedPolySet(ob));
34: if (n-1 != getoaSize(getoa(ob,0)))
35: errorKan1("%s\n","gradedArrayToGradedPolySet(): the sizes of arrays mismatch.");
36: max = 0; n--;
37: gvec = getoa(ob,0); /* grade vector */
38: for (i=0; i<n; i++) {
39: if (getoa(gvec,i).tag != Sinteger)
40: errorKan1("%s\n","gradedArrayToGradedPolySet(): the first argument must be a vector of grades.");
41: if (KopInteger(getoa(gvec,i)) > max) max = KopInteger(getoa(gvec,i));
42: }
43: grG = newGradedPolySet(max+1);
44: j = 0;
45: for (i=0; i<grG->lim;i++) {
46: if (i == KopInteger(getoa(gvec,i))) {
47: j++;
48: if (getoa(ob,j).tag != Sarray) errorKan1("%s\n","gradedArrayToGradedPolySet(): the argument must be an array of polynomials.");
49: grG->polys[i] = newPolySet(getoaSize(getoa(ob,j)));
50: }else {
51: grG->polys[i] = newPolySet(0);
52: }
53: }
54: for (i=0; i<n; i++) {
55: vec = getoa(ob,i+1);
56: for (j=0; j<getoaSize(vec);j++) {
57: if (getoa(vec,j).tag != Spoly) {
58: errorKan1("%s(%d,%d)\n","gradedArrayToGradedPolySet(): the element must be polynomial. (i,j)=");
59: }
60: f = KopPOLY(getoa(vec,j));
61: whereInG(grG,f,&grd,&ind);
62: grG = putPolyInG(grG,f,grd,ind,(struct syz0 *)NULL,1);
63: }
64: }
65: return(grG);
66: }
67:
68:
69: static int tmpOrder[] =
70: /*
71: 0 1 2 3 4 5 6 7 8 9 10 11
72: x5 x4 x3 x2 x1 x0 D5 D4 D3 D2 D1 D0
73: */
74: {
75: 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
76: 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
77: 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0,
78: 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0,
79: 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0,
80: 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81: 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0,
83: 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0,
84: 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0,
85: 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0,
86: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
87:
88:
89: /* tmp code */
90: TransX[0] = "x0"; TransX[1] = "x1"; TransX[2] = "x2";
91: TransX[3] = "x3"; TransX[4] = "x4"; TransX[5] = "t";
92:
93: TransD[0] = "h"; TransD[1] = "D1"; TransD[2] = "D2";
94: TransD[3] = "D3"; TransD[4] = "D4"; TransD[5] = "T";
95:
96: CurrentRingp = (struct ring *)GC_malloc(sizeof(struct ring));
97: CurrentRingp->p = P;
98: CurrentRingp->n = N; CurrentRingp->m = M; CurrentRingp->l = L; CurrentRingp->c = C;
99: CurrentRingp->nn = NN; CurrentRingp->mm = MM; CurrentRingp->ll = LL;
100: CurrentRingp->cc = CC;
101: CurrentRingp->x = TransX;
102: CurrentRingp->D = TransD;
103: CurrentRingp->order = tmpOrder;
104: CurrentRingp->next = (struct ring *)NULL;
105: Order = tmpOrder;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>