=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/order.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -r1.9 -r1.10 --- OpenXM/src/kan96xx/Kan/order.c 2003/08/26 12:46:05 1.9 +++ OpenXM/src/kan96xx/Kan/order.c 2004/05/13 04:38:28 1.10 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/order.c,v 1.8 2003/06/26 13:00:11 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/order.c,v 1.9 2003/08/26 12:46:05 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -678,6 +678,92 @@ int mmLarger_tower3(POLY f,POLY g,struct object *gbLis else if (fv < gv) return(1); /* modifiable */ } +struct object oRingToOXringStructure(struct ring *ringp) +{ + struct object rob,ob2; + struct object obMat; + struct object obV; + struct object obShift; + struct object obt; + char **TransX; char **TransD; + int n,i,j,m,p,nonzero; + int *om; + n = ringp->n; + m = ringp->orderMatrixSize; + om = ringp->order; + TransX = ringp->x; TransD = ringp->D; + if (m<=0) m = 1; + /*test: (1). getRing /rr set rr (oxRingStructure) dc */ + obMat = newObjectArray(m); + for (i=0; idegreeShiftSize) { + /*test: + [(x) ring_of_differential_operators [[(x)]] weight_vector 0 + [(weightedHomogenization) 1 (degreeShift) [[1 2 1]]] ] define_ring ; + (1). getRing /rr set rr (oxRingStructure) dc message + */ + obShift = newObjectArray(ringp->degreeShiftN); + for (i=0; idegreeShiftN; i++) { + obt = newObjectArray(ringp->degreeShiftSize); + for (j=0; j< ringp->degreeShiftSize; j++) { + putoa(obt,j,KpoUniversalNumber(newUniversalNumber(ringp->degreeShift[i*(ringp->degreeShiftSize)+j]))); + } + putoa(obShift,i,obt); + } + /* printObject(obShift,0,stderr); */ + } + + p = 0; + if (ringp->degreeShiftSize) { + rob = newObjectArray(3); + obt = newObjectArray(2); + putoa(obt,0,KpoString("degreeShift")); + putoa(obt,1,obShift); + putoa(rob,p, obt); p++; + }else { + rob = newObjectArray(2); + } + + obt = newObjectArray(2); + putoa(obt,0,KpoString("v")); + putoa(obt,1,obV); + putoa(rob,p, obt); p++; + + obt = newObjectArray(2); + putoa(obt,0,KpoString("order")); + putoa(obt,1,obMat); + putoa(rob,p, obt); p++; + + return(rob); +} + static void warningOrder(s) char *s; {