version 1.22, 2002/09/27 04:24:04 |
version 1.23, 2002/09/27 08:40:48 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Hgfs.c,v 1.21 2001/11/19 00:57:11 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/engine/Hgfs.c,v 1.22 2002/09/27 04:24:04 noro Exp $ */ |
|
|
#include "ca.h" |
#include "ca.h" |
#include "inline.h" |
#include "inline.h" |
Line 650 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
Line 650 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
V x,y; |
V x,y; |
P lc,lc0,f0; |
P lc,lc0,f0; |
Obj obj; |
Obj obj; |
int j,q1,index,i; |
int j,q,index,i; |
|
|
clctv(vl,f,&nvl); vl = nvl; |
clctv(vl,f,&nvl); vl = nvl; |
x = vl->v; y = vl->next->v; |
x = vl->v; y = vl->next->v; |
Line 658 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
Line 658 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
n = QTOS(DEG(DC(f))); |
n = QTOS(DEG(DC(f))); |
wf = W_UMALLOC(n); wf1 = W_UMALLOC(n); wf2 = W_UMALLOC(n); |
wf = W_UMALLOC(n); wf1 = W_UMALLOC(n); wf2 = W_UMALLOC(n); |
wfs = W_UMALLOC(n); gcd = W_UMALLOC(n); |
wfs = W_UMALLOC(n); gcd = W_UMALLOC(n); |
q1 = field_order_sf()-1; |
q = field_order_sf(); |
lc = DC(f)->c; |
lc = DC(f)->c; |
for ( j = 0, fn = n + 1, index = 0; |
for ( j = 0, fn = n + 1, index = 0; |
index < q1 && j < count && fn > 1; index++ ) { |
index < q && j < count && fn > 1; index++ ) { |
MKGFS(index,m); |
indextogfs(index,&m); |
substp(vl,lc,y,(P)m,&lc0); |
substp(vl,lc,y,(P)m,&lc0); |
if ( lc0 ) { |
if ( lc0 ) { |
substp(vl,f,y,(P)m,&f0); |
substp(vl,f,y,(P)m,&f0); |
Line 678 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
Line 678 int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp) |
|
} |
} |
} |
} |
} |
} |
if ( index == q1 ) |
if ( index == q ) |
return 0; |
return 0; |
else if ( fn == 1 ) |
else if ( fn == 1 ) |
return 1; |
return 1; |
Line 865 void sfbmtop(BM f,V x,V y,P *fp) |
|
Line 865 void sfbmtop(BM f,V x,V y,P *fp) |
|
if ( DEG(c[j]) >= i && (a = COEF(c[j])[i]) ) { |
if ( DEG(c[j]) >= i && (a = COEF(c[j])[i]) ) { |
NEWDC(dct); |
NEWDC(dct); |
STOQ(j,DEG(dct)); |
STOQ(j,DEG(dct)); |
MKGFS(IFTOF(a),b); |
iftogfs(a,&b); |
COEF(dct) = (P)b; |
COEF(dct) = (P)b; |
NEXT(dct) = dc; |
NEXT(dct) = dc; |
dc = dct; |
dc = dct; |
Line 1322 void cont_pp_sfp(VL vl,P f,P *cp,P *fp) |
|
Line 1322 void cont_pp_sfp(VL vl,P f,P *cp,P *fp) |
|
y = vl->next->v; |
y = vl->next->v; |
d = getdeg(y,f); |
d = getdeg(y,f); |
if ( d == 0 ) { |
if ( d == 0 ) { |
MKGFS(0,g); |
itogfs(1,&g); |
*cp = (P)g; |
*cp = (P)g; |
*fp = f; /* XXX */ |
*fp = f; /* XXX */ |
} else { |
} else { |