[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.12 and 1.13

version 1.12, 2002/11/26 07:09:45 version 1.13, 2002/11/26 08:21:49
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.11 2002/11/22 08:44:57 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.12 2002/11/26 07:09:45 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
   
Line 51  void sqfrsf(VL vl, P f, DCP *dcp)
Line 51  void sqfrsf(VL vl, P f, DCP *dcp)
         DCP dc,dct;          DCP dc,dct;
         Obj obj;          Obj obj;
         P t,s,c;          P t,s,c;
         VL tvl,nvl;          VL tvl,onevl;
   
         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(vl,f,&t,&dc); f = t;
         clctv(vl,f,&tvl); vl = tvl;          clctv(vl,f,&tvl); vl = tvl;
           NEWVL(onevl); NEXT(onevl)=0;
         if ( !vl )          if ( !vl )
                 ;                  ;
         else if ( !NEXT(vl) ) {          else if ( !NEXT(vl) ) {
Line 65  void sqfrsf(VL vl, P f, DCP *dcp)
Line 66  void sqfrsf(VL vl, P f, DCP *dcp)
         } else {          } else {
                 t = f;                  t = f;
                 for ( tvl = vl; tvl; tvl = NEXT(tvl) ) {                  for ( tvl = vl; tvl; tvl = NEXT(tvl) ) {
                         reordvar(vl,tvl->v,&nvl);                          onevl->v = tvl->v;
                         cont_pp_mv_sf(vl,NEXT(nvl),t,&c,&s); t = s;                          cont_pp_mv_sf(vl,onevl,t,&c,&s); t = s;
                         sqfrsf(vl,c,&dct);                          sqfrsf(vl,c,&dct);
                         dc = append_dc(dc,NEXT(dct));                          dc = append_dc(dc,NEXT(dct));
                 }                  }
Line 822  void mfctrsf_hensel(VL vl,VL rvl,P f,P pp0,P u0,P v0,P
Line 823  void mfctrsf_hensel(VL vl,VL rvl,P f,P pp0,P u0,P v0,P
         P *cu,*cv;          P *cu,*cv;
         GFSN inv;          GFSN inv;
   
         /* adjust coeffs */          /* check the validity of lc's and adjust coeffs */
           /* f                -> lcu*lcv*x^(m+l)+... */
           mulp(vl,lcu,lcv,&t);
           if ( !divtp(vl,t,LC(f),&m) ) {
                   *up = 0; return;
           }
           mulp(vl,m,f,&t); f = t;
         /* u0 = am x^m+ ... -> lcu*x^m + a(m-1)*(lcu(mev)/am)*x^(m-1)+... */          /* u0 = am x^m+ ... -> lcu*x^m + a(m-1)*(lcu(mev)/am)*x^(m-1)+... */
         /* v0 = bm x^l+ ... -> lcv*x^l + b(l-1)*(lcv(mev)/bl)*x^(l-1)+... */          /* v0 = bm x^l+ ... -> lcv*x^l + b(l-1)*(lcv(mev)/bl)*x^(l-1)+... */
         /* f                -> lcu*lcv*x^(m+l)+... */  
         adjust_coef_sf(vl,rvl,lcu,u0,mev,&u);          adjust_coef_sf(vl,rvl,lcu,u0,mev,&u);
         adjust_coef_sf(vl,rvl,lcv,v0,mev,&v);          adjust_coef_sf(vl,rvl,lcv,v0,mev,&v);
         mulp(vl,lcu,lcv,&t); divsp(vl,t,LC(f),&m); mulp(vl,m,f,&t); f = t;  
   
         /* f <- f(X+mev), u <- u(X+mev), v <- v(X+mev) */          /* f <- f(X+mev), u <- u(X+mev), v <- v(X+mev) */
         fin = f;          fin = f;

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

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