version 1.1, 2018/09/19 05:45:05 |
version 1.2, 2018/09/28 08:20:27 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM_contrib2/asir2018/builtin/al.c,v 1.1 2018/09/19 05:45:05 noro Exp $ */ |
/* ---------------------------------------------------------------------- |
/* ---------------------------------------------------------------------- |
$Id$ |
$Id$ |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
|
|
oFOP op; |
oFOP op; |
|
|
op = FOP((F)ARG0(arg)); |
op = FOP((F)ARG0(arg)); |
STOQ((int)op,*rp); |
STOZ((int)op,*rp); |
} |
} |
|
|
void Pfargs(arg,rp) |
void Pfargs(arg,rp) |
|
|
|
|
f = (F)ARG0(arg); |
f = (F)ARG0(arg); |
op = FOP(f); |
op = FOP(f); |
STOQ((int)op,op1); |
STOZ((int)op,op1); |
if ( AL_TVAL(op) ) |
if ( AL_TVAL(op) ) |
n1 = 0; |
n1 = 0; |
else if ( AL_JUNCT(op) ) |
else if ( AL_JUNCT(op) ) |
Line 358 void Pcompf(arg,rp) |
|
Line 358 void Pcompf(arg,rp) |
|
NODE arg; |
NODE arg; |
Z *rp; |
Z *rp; |
{ |
{ |
STOQ(compf(CO,BDY(arg),BDY(NEXT(arg))),*rp); |
STOZ(compf(CO,BDY(arg),BDY(NEXT(arg))),*rp); |
} |
} |
|
|
void Patnum(arg,rp) |
void Patnum(arg,rp) |
|
|
|
|
if (FOP(f) != AL_AND) |
if (FOP(f) != AL_AND) |
return 0; |
return 0; |
STOQ(2,two); |
STOZ(2,two); |
for (deg=ONE; cmpz(two,deg) >= 0; addz(deg,ONE,°)) |
for (deg=ONE; cmpz(two,deg) >= 0; addz(deg,ONE,°)) |
for (scvl=*pvl; scvl; scvl=NEXT(scvl)) { |
for (scvl=*pvl; scvl; scvl=NEXT(scvl)) { |
v = VR(scvl); |
v = VR(scvl); |
|
|
rld = DC(rlhs); |
rld = DC(rlhs); |
if (cmpz(DEG(rld),deg) != 0) |
if (cmpz(DEG(rld),deg) != 0) |
return 0; |
return 0; |
STOQ(2,two); |
STOZ(2,two); |
if (cmpz(deg,two) == 0) { |
if (cmpz(deg,two) == 0) { |
*pa = COEF(rld); |
*pa = COEF(rld); |
rld = NEXT(rld); |
rld = NEXT(rld); |
Line 1488 NODE trans[],transc[]; |
|
Line 1488 NODE trans[],transc[]; |
|
translate_a1(FOP(at),mp,trans,transc); |
translate_a1(FOP(at),mp,trans,transc); |
return 1; |
return 1; |
}; |
}; |
STOQ(2,two); |
STOZ(2,two); |
if (cmpz(two,DEG(DC(mp))) == 0) { |
if (cmpz(two,DEG(DC(mp))) == 0) { |
translate_a2(FOP(at),mp,trans,transc); |
translate_a2(FOP(at),mp,trans,transc); |
return 1; |
return 1; |
|
|
Z four; |
Z four; |
|
|
mulp(CO,a,c,&h1); |
mulp(CO,a,c,&h1); |
STOQ(4,four); |
STOZ(4,four); |
mulp(CO,(P)four,h1,&h2); |
mulp(CO,(P)four,h1,&h2); |
mulp(CO,b,b,&h1); |
mulp(CO,b,b,&h1); |
subp(CO,h1,h2,pd); |
subp(CO,h1,h2,pd); |
|
|
alpha = COEF(DC(prem)); |
alpha = COEF(DC(prem)); |
beta = (NEXT(DC(prem))) ? COEF(NEXT(DC(prem))) : 0; |
beta = (NEXT(DC(prem))) ? COEF(NEXT(DC(prem))) : 0; |
getqcoeffs(re->p,&a,&b,&c); |
getqcoeffs(re->p,&a,&b,&c); |
STOQ(2,two); |
STOZ(2,two); |
mulp(CO,(P)two,a,&h1); |
mulp(CO,(P)two,a,&h1); |
mulp(CO,h1,beta,&h2); |
mulp(CO,h1,beta,&h2); |
mulp(CO,b,alpha,&h1); |
mulp(CO,b,alpha,&h1); |