version 1.4, 2001/03/29 09:49:57 |
version 1.5, 2001/10/09 01:36:11 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/engine/PD.c,v 1.3 2000/08/22 05:04:04 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/engine/PD.c,v 1.4 2001/03/29 09:49:57 noro Exp $ |
*/ |
*/ |
#ifndef FBASE |
#ifndef FBASE |
#define FBASE |
#define FBASE |
|
|
} |
} |
|
|
#ifdef FBASE |
#ifdef FBASE |
void plisttop(f,v,n,gp) |
void plisttop(P *f,V v,int n,P *gp) |
P *f; |
|
V v; |
|
int n; |
|
P *gp; |
|
{ |
{ |
int i; |
int i; |
DCP dc,dc0; |
DCP dc,dc0; |
|
|
|
|
/* for multivariate polynomials over fields */ |
/* for multivariate polynomials over fields */ |
|
|
int divtp(vl,p1,p2,q) |
int divtp(VL vl,P p1,P p2,P *q) |
VL vl; |
|
P p1,p2,*q; |
|
{ |
{ |
register int i,j,k; |
register int i,j; |
register DCP dc1,dc2,dc; |
register DCP dc1,dc2,dc; |
P m,m1,s,dvr,t; |
P m,m1,s,dvr,t; |
P *pq,*pr,*pd; |
P *pq,*pr,*pd; |
|
|
} |
} |
} |
} |
|
|
int divtdcp(vl,p1,p2,q) |
int divtdcp(VL vl,P p1,P p2,P *q) |
VL vl; |
|
P p1,p2,*q; |
|
{ |
{ |
|
|
P m; |
P m; |
register DCP dc,dcr,dcr0,dct; |
register DCP dc,dcr,dcr0; |
|
|
for ( dc = DC(p1), dcr0 = 0; dc; dc = NEXT(dc) ) |
for ( dc = DC(p1), dcr0 = 0; dc; dc = NEXT(dc) ) |
if ( !divtp(vl,COEF(dc),p2,&m) ) { |
if ( !divtp(vl,COEF(dc),p2,&m) ) { |
|
|
return 1; |
return 1; |
} |
} |
|
|
int divtpz(vl,p1,p2,q) |
int divtpz(VL vl,P p1,P p2,P *q) |
VL vl; |
|
P p1,p2,*q; |
|
{ |
{ |
register int i,j; |
register int i,j; |
register DCP dc1,dc2,dc; |
register DCP dc1,dc2,dc; |
|
|
} |
} |
} |
} |
|
|
int divtdcpz(vl,p1,p2,q) |
int divtdcpz(VL vl,P p1,P p2,P *q) |
VL vl; |
|
P p1,p2,*q; |
|
{ |
{ |
|
|
P m; |
P m; |
|
|
return ( 1 ); |
return ( 1 ); |
} |
} |
|
|
void udivpz(f1,f2,fqp,frp) |
void udivpz(P f1,P f2,P *fqp,P *frp) |
P f1,f2,*fqp,*frp; |
|
{ |
{ |
register int n1,n2,i,j; |
register int n1,n2,i,j; |
Q *pq,*pr,*pd,d,m,s,q; |
Q *pq,*pr,*pd,d,m,s,q; |
Line 492 P f1,f2,*fqp,*frp; |
|
Line 479 P f1,f2,*fqp,*frp; |
|
plisttop((P *)pq,VR(f1),n1-n2,fqp); plisttop((P *)pr,VR(f1),n2-1,frp); |
plisttop((P *)pq,VR(f1),n1-n2,fqp); plisttop((P *)pr,VR(f1),n2-1,frp); |
} |
} |
|
|
void udivpwm(mod,p1,p2,q,r) |
void udivpwm(Q mod,P p1,P p2,P *q,P *r) |
Q mod; |
|
P p1,p2; |
|
P *q,*r; |
|
{ |
{ |
P s,t,u,tq,tr; |
P s,t,u,tq,tr; |
|
|
|
|
cmp(mod,tr,r); mulpq(tq,t,&s); cmp(mod,s,q); |
cmp(mod,tr,r); mulpq(tq,t,&s); cmp(mod,s,q); |
} |
} |
|
|
void udivpzwm(mod,f1,f2,fqp,frp) |
void udivpzwm(Q mod,P f1,P f2,P *fqp,P *frp) |
Q mod; |
|
P f1,f2,*fqp,*frp; |
|
{ |
{ |
register int n1,n2,i,j; |
register int n1,n2,i,j; |
Q *pq,*pr,*pd,d,m,s,q; |
Q *pq,*pr,*pd,d,m,s,q; |