version 1.17, 2003/01/13 06:40:41 |
version 1.20, 2004/02/03 23:31:57 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.16 2003/01/06 09:23:27 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Fgfs.c,v 1.19 2003/03/12 02:06:11 noro Exp $ */ |
|
|
#include "ca.h" |
#include "ca.h" |
|
|
Line 497 void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) |
|
Line 497 void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) |
|
MP t; |
MP t; |
int i,m; |
int i,m; |
P *ps; |
P *ps; |
struct order_spec spec, currentspec; |
struct order_spec *spec, *currentspec; |
extern struct order_spec dp_current_spec; |
extern struct order_spec *dp_current_spec; |
|
|
currentspec = dp_current_spec; |
currentspec = dp_current_spec; |
create_order_spec(0,&spec); |
create_order_spec(0,0,spec); |
initd(&spec); |
initd(spec); |
ptod(vl,rvl,p,&dp); |
ptod(vl,rvl,p,&dp); |
for ( t = BDY(dp), m = 0; t; t = NEXT(t), m++ ); |
for ( t = BDY(dp), m = 0; t; t = NEXT(t), m++ ); |
ps = (P *)ALLOCA(m*sizeof(P)); |
ps = (P *)ALLOCA(m*sizeof(P)); |
Line 510 void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) |
|
Line 510 void cont_pp_mv_sf(VL vl,VL rvl,P p,P *c,P *pp) |
|
ps[i] = C(t); |
ps[i] = C(t); |
gcdsf(vl,ps,m,c); |
gcdsf(vl,ps,m,c); |
divsp(vl,p,*c,pp); |
divsp(vl,p,*c,pp); |
initd(¤tspec); |
initd(currentspec); |
} |
} |
|
|
void mfctrsf(VL vl, P f, DCP *dcp) |
void mfctrsf(VL vl, P f, DCP *dcp) |
Line 561 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 979 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) |