version 1.13, 2007/02/15 02:06:20 |
version 1.15, 2017/08/31 02:36:20 |
|
|
* 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/builtin/algnum.c,v 1.12 2005/08/02 07:16:41 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/algnum.c,v 1.14 2013/11/17 17:34:59 ohara Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 162 void Pdptodalg(NODE arg,DAlg *r) |
|
Line 162 void Pdptodalg(NODE arg,DAlg *r) |
|
dp_ptozp(d,&nm); |
dp_ptozp(d,&nm); |
divq((Q)BDY(d)->c,(Q)BDY(nm)->c,&c); |
divq((Q)BDY(d)->c,(Q)BDY(nm)->c,&c); |
NTOQ(NM(c),SGN(c),a); |
NTOQ(NM(c),SGN(c),a); |
muldc(CO,nm,(P)a,&nm1); |
muldc(CO,nm,(Obj)a,&nm1); |
NTOQ(DN(c),1,a); |
NTOQ(DN(c),1,a); |
MKDAlg(nm1,a,t); |
MKDAlg(nm1,a,t); |
} |
} |
Line 209 void Pget_field_generator(NODE arg,DAlg *r) |
|
Line 209 void Pget_field_generator(NODE arg,DAlg *r) |
|
NEWDL(dl,n); |
NEWDL(dl,n); |
for ( i = 0; i < n; i++ ) dl->d[i] = 0; |
for ( i = 0; i < n; i++ ) dl->d[i] = 0; |
dl->d[index] = 1; dl->td = 1; |
dl->d[index] = 1; dl->td = 1; |
NEWMP(m); m->dl = dl; m->c = (P)ONE; NEXT(m) = 0; |
NEWMP(m); m->dl = dl; m->c = (Obj)ONE; NEXT(m) = 0; |
MKDP(n,m,d); |
MKDP(n,m,d); |
MKDAlg(d,ONE,*r); |
MKDAlg(d,ONE,*r); |
} |
} |
Line 219 void Pinv_or_split_dalg(NODE arg,Obj *rp) |
|
Line 219 void Pinv_or_split_dalg(NODE arg,Obj *rp) |
|
{ |
{ |
NODE gen,t,nd0,nd; |
NODE gen,t,nd0,nd; |
LIST list; |
LIST list; |
int l,i,j,k,n; |
int l,i,j,n; |
DP *ps,*ps1,*psw; |
DP *ps,*ps1,*psw; |
NumberField nf; |
NumberField nf; |
DAlg inv; |
DAlg inv; |
Line 255 void Pinv_or_split_dalg(NODE arg,Obj *rp) |
|
Line 255 void Pinv_or_split_dalg(NODE arg,Obj *rp) |
|
for ( ; i >= 0; i-- ) { |
for ( ; i >= 0; i-- ) { |
NEXTNODE(nd0,nd); BDY(nd) = (pointer)psw[i]; |
NEXTNODE(nd0,nd); BDY(nd) = (pointer)psw[i]; |
} |
} |
for ( ; t; t = NEXT(t), k++ ) { |
for ( ; t; t = NEXT(t) ) { |
NEXTNODE(nd0,nd); BDY(nd) = BDY(t); |
NEXTNODE(nd0,nd); BDY(nd) = BDY(t); |
} |
} |
NEXT(nd) = 0; |
NEXT(nd) = 0; |
Line 742 void invalg_le(Alg a,LIST *r) |
|
Line 742 void invalg_le(Alg a,LIST *r) |
|
for ( i = 0, t = rev0, mp0 = 0; i < len; i++, t = NEXT(t) ) |
for ( i = 0, t = rev0, mp0 = 0; i < len; i++, t = NEXT(t) ) |
if ( solmat[i][0] ) { |
if ( solmat[i][0] ) { |
NEXTMP(mp0,mp); |
NEXTMP(mp0,mp); |
mp->c = (P)solmat[i][0]; |
mp->c = (Obj)solmat[i][0]; |
mp->dl = BDY((DP)BDY(t))->dl; |
mp->dl = BDY((DP)BDY(t))->dl; |
} |
} |
NEXT(mp) = 0; MKDP(n,mp0,u); |
NEXT(mp) = 0; MKDP(n,mp0,u); |
dp_ptozp(u,&u1); |
dp_ptozp(u,&u1); |
divq((Q)BDY(u)->c,(Q)BDY(u1)->c,&cont); |
divq((Q)BDY(u)->c,(Q)BDY(u1)->c,&cont); |
dtop(ALG,vl,u1,&ap); |
dtop(ALG,vl,u1,(Obj *)&ap); |
MKAlg(ap,inv); |
MKAlg(ap,inv); |
mulq(dnsol,(Q)dn,&c1); |
mulq(dnsol,(Q)dn,&c1); |
mulq(c1,c,&c2); |
mulq(c1,c,&c2); |