=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Kan/output.c,v retrieving revision 1.3 retrieving revision 1.6 diff -u -p -r1.3 -r1.6 --- OpenXM/src/kan96xx/Kan/output.c 2001/05/04 01:06:24 1.3 +++ OpenXM/src/kan96xx/Kan/output.c 2006/12/21 05:29:49 1.6 @@ -1,5 +1,8 @@ -/* $OpenXM: OpenXM/src/kan96xx/Kan/output.c,v 1.2 2000/01/16 07:55:40 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kan96xx/Kan/output.c,v 1.5 2005/07/03 11:08:54 ohara Exp $ */ #include +#include +#include +#include #include "datatype.h" #include "stackm.h" #include "extern.h" @@ -56,6 +59,7 @@ char *POLYToString(f,multSym,brace) int brace; { extern int Wrap; + extern int UseDsmall; int i,j,jj,fi; int printed = 0; int vi; /* index for variables */ @@ -84,7 +88,9 @@ char *POLYToString(f,multSym,brace) printed = 1; xnames = dnames = (char **)NULL; }else{ - ringp = f->m->ringp; xnames = f->m->ringp->x; dnames = f->m->ringp->D; + ringp = f->m->ringp; xnames = f->m->ringp->x; + if (UseDsmall) dnames = f->m->ringp->Dsmall; + else dnames = f->m->ringp->D; n = ringp->n; xout = ringp->outputOrder; } @@ -257,9 +263,34 @@ isConstant(f) return(1); } +int isConstantAll(POLY f) +{ + int i; + int n; + if (f == POLYNULL) return(1); + while (f != POLYNULL) { + if (!isConstant(f)) return 0; + f = f->next; + } + return 1; +} + void errorOutput(s) char *s; { fprintf(stderr,"Error(output.c):%s\n",s); exit(15); +} + +char **makeDsmall(char **dvars,int n) { + char **ans; + int i; + ans = (char **) sGC_malloc(sizeof(char *)*(n+1)); + for (i=0; i