[BACK]Return to poly4.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/poly4.c between version 1.8 and 1.9

version 1.8, 2003/08/19 08:02:10 version 1.9, 2003/08/21 12:28:58
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/poly4.c,v 1.7 2003/07/19 06:03:57 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/poly4.c,v 1.8 2003/08/19 08:02:10 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "datatype.h"  #include "datatype.h"
 #include "stackm.h"  #include "stackm.h"
Line 539  int isTheSameRing(struct ring *rstack[],int rp, struct
Line 539  int isTheSameRing(struct ring *rstack[],int rp, struct
   
 /* s->1 */  /* s->1 */
 POLY goDeHomogenizeS(POLY f) {  POLY goDeHomogenizeS(POLY f) {
     POLY lRule[1];
     POLY rRule[1];
     struct ring *rp;
     POLY ans;
     /* printf("1:[%s]\n",POLYToString(f,'*',1)); */
     if (f == POLYNULL) return f;
     rp = f->m->ringp;
     if (rp->next == NULL) {
           lRule[0] = cxx(1,0,1,rp);
           rRule[0] = cxx(1,0,0,rp);
           ans=replace(f,lRule,rRule,1);
     }else{
           struct coeff *cp;
           POLY t;
           POLY nc;
       ans = POLYNULL;
           while (f != POLYNULL) {
             cp = f->coeffp;
             if (cp->tag == POLY_COEFF) {
                   t = goDeHomogenizeS((cp->val).f);
                   nc = newCell(polyToCoeff(t,f->m->ringp),f->m);
                   ans = ppAddv(ans,nc);
                   f = f->next;
             }else{
                   ans = f; break;
             }
           }
     }
     /* printf("2:[%s]\n",POLYToString(ans,'*',1)); */
     return ans;
   }
   
   POLY goDeHomogenizeS_buggy(POLY f) {
   POLY node;    POLY node;
   POLY lastf;    POLY lastf;
   struct listPoly nod;    struct listPoly nod;
Line 546  POLY goDeHomogenizeS(POLY f) {
Line 579  POLY goDeHomogenizeS(POLY f) {
   POLY tf;    POLY tf;
   int gt,first;    int gt,first;
   
     printf("1:[%s]\n",POLYToString(f,'*',1));
   if (f == POLYNULL) return(POLYNULL);    if (f == POLYNULL) return(POLYNULL);
   node = &nod;    node = &nod;
   node->next = POLYNULL;    node->next = POLYNULL;
Line 575  POLY goDeHomogenizeS(POLY f) {
Line 609  POLY goDeHomogenizeS(POLY f) {
     }      }
     f = f->next;      f = f->next;
   }    }
     printf("2:[%s]\n",POLYToString(node->next,'*',1));
   return (node->next);    return (node->next);
 }  }
   

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>