=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/kanExport0.c,v retrieving revision 1.14 retrieving revision 1.17 diff -u -p -r1.14 -r1.17 --- OpenXM/src/kan96xx/Kan/kanExport0.c 2003/07/14 12:49:52 1.14 +++ OpenXM/src/kan96xx/Kan/kanExport0.c 2003/08/23 02:28:38 1.17 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.13 2003/07/05 01:53:33 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/kanExport0.c,v 1.16 2003/08/20 01:39:17 takayama Exp $ */ #include #include "datatype.h" #include "stackm.h" @@ -984,7 +984,7 @@ struct object KdataConversion(obj,key) } break; case Spoly: - if (strcmp(key,"poly")==0) { + if ((strcmp(key,"poly")==0) || (strcmp(key,"numerator")==0)) { rob = obj; return(rob); }else if (strcmp(key,"integer")==0) { @@ -1055,7 +1055,7 @@ struct object KdataConversion(obj,key) } break; case SuniversalNumber: - if (strcmp(key,"universalNumber")==0) { + if ((strcmp(key,"universalNumber")==0) || (strcmp(key,"numerator")==0)) { return(rob); }else if (strcmp(key,"integer")==0) { rob = KpoInteger(coeffToInt(obj.lc.universalNumber)); @@ -2242,6 +2242,7 @@ struct object KgbExtension(struct object obj) POLY f; int m,i; struct pairOfPOLY pf; + struct coeff *cont; if (obj.tag != Sarray) errorKan1("%s\n","KgbExtension(): The argument must be an array."); size = getoaSize(obj); @@ -2355,6 +2356,25 @@ struct object KgbExtension(struct object obj) obj1 = getoa(obj,1); if (obj1.tag != Spoly) errorKan1("%s\n","[(isOrdered) poly] gbext poly"); return(KisOrdered(obj1)); + }else if (strcmp(key,"reduceContent")==0) { + if (size != 2) errorKan1("%s\n","[(reduceContent) poly1 ] gbext."); + obj1 = getoa(obj,1); + if (obj1.tag != Spoly) + errorKan1("%s\n","[(reduceContent) poly1 ] gbext."); + f1 = KopPOLY(obj1); + rob = newObjectArray(2); + f1 = reduceContentOfPoly(f1,&cont); + putoa(rob,0,KpoPOLY(f1)); + if (f1 == POLYNULL) { + putoa(rob,1,KpoPOLY(f1)); + }else{ + putoa(rob,1,KpoPOLY(newCell(cont,newMonomial(f1->m->ringp)))); + } + }else if (strcmp(key,"ord_ws_all")==0) { + if (size != 3) errorKan1("%s\n","[(ord_ws_all) fv wv] gbext"); + obj1 = getoa(obj,1); + obj2 = getoa(obj,2); + rob = KordWsAll(obj1,obj2); }else { errorKan1("%s\n","gbext : unknown tag."); }