[BACK]Return to Fgfs.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / engine

Diff for /OpenXM_contrib2/asir2000/engine/Fgfs.c between version 1.16 and 1.19

version 1.16, 2003/01/06 09:23:27 version 1.19, 2003/03/12 02:06:11
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.15 2003/01/04 09:06:17 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.18 2003/01/17 00:17:10 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
   
Line 25  void gfsn_poly_to_poly_main(P f,V v,P *r);
Line 25  void gfsn_poly_to_poly_main(P f,V v,P *r);
 void gfsn_univariate_to_sfbm(P f,int dy,BM *r);  void gfsn_univariate_to_sfbm(P f,int dy,BM *r);
 void sfbm_to_gfsn_univariate(BM f,V x,V y,P *r);  void sfbm_to_gfsn_univariate(BM f,V x,V y,P *r);
   
   void monomialfctr_sf(VL vl,P p,P *pr,DCP *dcp)
   {
           VL nvl,avl;
           Q d;
           P f,t,s;
           DCP dc0,dc;
           Obj obj;
   
           clctv(vl,p,&nvl);
           for ( dc0 = 0, avl = nvl, f = p; avl; avl = NEXT(avl) ) {
                   getmindeg(avl->v,f,&d);
                   if ( d ) {
                           MKV(avl->v,t);
                           simp_ff((Obj)t,&obj); t = (P)obj;
                           NEXTDC(dc0,dc); DEG(dc) = d; COEF(dc) = t;
                           pwrp(vl,t,d,&s); divsp(vl,f,s,&t); f = t;
                   }
           }
           if ( dc0 )
                   NEXT(dc) = 0;
           *pr = f; *dcp = dc0;
   }
   
 void lex_lc(P f,P *c)  void lex_lc(P f,P *c)
 {  {
         if ( !f || NUM(f) )          if ( !f || NUM(f) )
Line 55  void sqfrsf(VL vl, P f, DCP *dcp)
Line 78  void sqfrsf(VL vl, P f, DCP *dcp)
   
         simp_ff((Obj)f,&obj); f = (P)obj;          simp_ff((Obj)f,&obj); f = (P)obj;
         lex_lc(f,&c); divsp(vl,f,c,&t); f = t;          lex_lc(f,&c); divsp(vl,f,c,&t); f = t;
         monomialfctr(vl,f,&t,&dc); f = t;          monomialfctr_sf(vl,f,&t,&dc); f = t;
         clctv(vl,f,&tvl); vl = tvl;          clctv(vl,f,&tvl); vl = tvl;
         NEWVL(onevl); NEXT(onevl)=0;          NEWVL(onevl); NEXT(onevl)=0;
         if ( !vl )          if ( !vl )
Line 538  void mfctrsfmain(VL vl, P f, DCP *dcp)
Line 561  void mfctrsfmain(VL vl, P f, DCP *dcp)
                 return;                  return;
         }          }
         for ( n = 0, tvl = vl; tvl; tvl = NEXT(tvl), n++ );          for ( n = 0, tvl = vl; tvl; tvl = NEXT(tvl), n++ );
         va = (V *)ALLOCA(n*sizeof(int));          va = (V *)ALLOCA(n*sizeof(V));
         da = (int *)ALLOCA(n*sizeof(int));          da = (int *)ALLOCA(n*sizeof(int));
         /* find v s.t. diff(f,v) is nonzero and deg(f,v) is minimal */          /* find v s.t. diff(f,v) is nonzero and deg(f,v) is minimal */
         imin = -1;          imin = -1;
Line 956  void mfctrsf_hensel(VL vl,VL rvl,P f,P pp0,P u0,P v0,P
Line 979  void mfctrsf_hensel(VL vl,VL rvl,P f,P pp0,P u0,P v0,P
                 addp(vl,v,wv,&t); v = t;                  addp(vl,v,wv,&t); v = t;
                 addp(vl,vh[j],wv,&t); vh[j] = t;                  addp(vl,vh[j],wv,&t); vh[j] = t;
         }          }
           gfsn_poly_to_poly(vl,u,vy,&t);
           shift_sf(vl,rvl,t,mev,-1,&s);
           if ( divtp(vl,fin,s,&q) )
                   cont_pp_mv_sf(vl,onevl,s,&cont,up);
           else
                   *up = 0;
 }  }
   
 void adjust_coef_sf(VL vl,VL rvl,P lcu,P u0,int *mev,P *r)  void adjust_coef_sf(VL vl,VL rvl,P lcu,P u0,int *mev,P *r)

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.19

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