version 1.11, 2010/04/28 15:27:40 |
version 1.17, 2010/07/12 07:20:03 |
|
|
|
/* $OpenXM: OpenXM/src/asir-contrib/testing/noro/ndbf.rr,v 1.16 2010/07/12 07:01:04 noro Exp $ */ |
/* requires 'primdec' */ |
/* requires 'primdec' */ |
|
|
#define TMP_H hhhhhhhh |
#define TMP_H hhhhhhhh |
#define TMP_S ssssssss |
#define TMP_S ssssssss |
#define TMP_DS dssssssss |
#define TMP_DS dssssssss |
#define TMP_T t |
#define TMP_T tttttttt |
#define TMP_DT dt |
#define TMP_DT dtttttttt |
#define TMP_Y1 yyyyyyyy1 |
#define TMP_Y1 yyyyyyyy1 |
#define TMP_DY1 dyyyyyyyy1 |
#define TMP_DY1 dyyyyyyyy1 |
#define TMP_Y2 yyyyyyyy2 |
#define TMP_Y2 yyyyyyyy2 |
Line 44 localf ideal_intersection$ |
|
Line 45 localf ideal_intersection$ |
|
|
|
def bfunction(F) |
def bfunction(F) |
{ |
{ |
|
if ( member(s,vars(F)) ) |
|
error("ann : the variable 's' is reserved."); |
|
/* F -> F/Fcont */ |
|
F1 = ptozp(F); Fcont = sdiv(F,F1); F = F1; |
|
|
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |
if ( type(Vord=getopt(vord)) == -1 || type(Vord) != 4 ) Vord = 0; |
if ( type(Vord=getopt(vord)) == -1 || type(Vord) != 4 ) Vord = 0; |
if ( type(Wt=getopt(weight)) == -1 ) Wt = 0; |
if ( type(Wt=getopt(weight)) == -1 ) Wt = 0; |
|
if ( type(Op=getopt(op)) == -1 ) Op = 0; |
L = in_ww(F|weight=Wt,heuristic=Heu,vord=Vord); |
L = in_ww(F|weight=Wt,heuristic=Heu,vord=Vord); |
Indata = L[0]; AllData = L[1]; VData = L[2]; |
Indata = L[0]; AllData = L[1]; VData = L[2]; |
GIN = Indata[0]; VDV = Indata[1]; WVDV = AllData[4]; |
GIN = Indata[0]; VDV = Indata[1]; WVDV = AllData[4]; |
|
|
dp_set_weight(W); |
dp_set_weight(W); |
B = weyl_minipoly(GIN,VDV,0,WVDV); |
B = weyl_minipoly(GIN,VDV,0,WVDV); |
dp_set_weight(0); |
dp_set_weight(0); |
return subst(B,s,-s-1); |
if ( !Op ) return subst(B,s,-s-1); |
|
|
|
V0 = VData[0]; DV0 = VData[1]; T = VData[2]; DT = VData[3]; |
|
BPT = weyl_subst(B,T*DT,VDV); |
|
|
|
/* computation using G0,GIN0,VDV0 */ |
|
G0 = AllData[0]; GIN0 = AllData[1]; VDV0 = AllData[2]; WtV0 = AllData[5]; |
|
dp_set_weight(WtV0); dp_ord(0); |
|
PS = map(dp_ptod,GIN0,VDV0); Len = length(PS); |
|
for ( I = Len-1, Ind = []; I >= 0; I-- ) Ind = cons(I,Ind); |
|
/* QR = [D,M,Coef] */ |
|
Ax = 1; |
|
AxBPT = dp_ptod(Ax*BPT,VDV0); |
|
QR = weyl_nf_quo(Ind,AxBPT,1,PS); |
|
if ( !weyl_nf_quo_check(AxBPT,PS,QR) ) |
|
error("bfunction : invalid quotient"); |
|
if ( QR[0] ) error("bfunction : invalid quotient"); |
|
Den = QR[1]; Coef = QR[2]; |
|
for ( I = 0, R = Den*AxBPT; I < Len; I++ ) |
|
R -= dp_weyl_mul(Coef[I],dp_ptod(G0[I],VDV0)); |
|
R = dp_dtop(R,VDV0); |
|
CR = conv_tdt(R,F,V0,DV0,T,DT); |
|
|
|
dp_set_weight(0); |
|
Cont = cont(CR); CR /= Cont; |
|
Cont *= dn(Fcont); Den *= nm(Fcont); |
|
Gcd = igcd(Den,Cont); |
|
return [subst(B,s,-s-1),(Cont*CR)/(Den*Ax)]; |
} |
} |
|
|
/* |
/* |
|
|
{ |
{ |
if ( member(s,vars(F)) ) |
if ( member(s,vars(F)) ) |
error("ann : the variable 's' is reserved."); |
error("ann : the variable 's' is reserved."); |
|
if ( type(Vord=getopt(vord)) == -1 ) Vord = 0; |
F = ptozp(F); |
F = ptozp(F); |
V = vars(F); |
V = vars(F); |
|
if ( Vord ) { |
|
Param = setminus(V,Vord); |
|
V = Vord; |
|
} |
N = length(V); |
N = length(V); |
D = newvect(N); |
D = newvect(N); |
if ( type(Wt=getopt(weight)) == -1 ) |
if ( type(Wt=getopt(weight)) == -1 ) |
Line 1229 def replace_var(V,X,Y) |
|
Line 1268 def replace_var(V,X,Y) |
|
|
|
def action_on_gfs(P,V,GFS) |
def action_on_gfs(P,V,GFS) |
{ |
{ |
|
for ( T = V, DV = []; T != []; T = cdr(T) ) |
|
DV = cons(strtov("d"+rtostr(car(T))),DV); |
|
V = append(append(V,[s]),reverse(cons(ds,DV))); |
DP = dp_ptod(P,V); |
DP = dp_ptod(P,V); |
N = length(V)/2; |
N = length(V)/2; |
for ( I = N-1, V0 = []; I >= 0; I-- ) |
for ( I = N-1, V0 = []; I >= 0; I-- ) |
Line 1375 def weyl_ideal_quotient(B,F,VDV) |
|
Line 1417 def weyl_ideal_quotient(B,F,VDV) |
|
|
|
def bf_strat(F) |
def bf_strat(F) |
{ |
{ |
|
if ( member(s,vars(F)) ) |
|
error("ann : the variable 's' is reserved."); |
dp_ord(0); |
dp_ord(0); |
T0 = time(); |
T0 = time(); |
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |
Line 1528 def bf_strat_stage3(L) |
|
Line 1572 def bf_strat_stage3(L) |
|
|
|
def bf_local(F,P) |
def bf_local(F,P) |
{ |
{ |
|
if ( member(s,vars(F)) ) |
|
error("ann : the variable 's' is reserved."); |
/* F -> F/Fcont */ |
/* F -> F/Fcont */ |
F1 = ptozp(F); Fcont = sdiv(F,F1); F = F1; |
F1 = ptozp(F); Fcont = sdiv(F,F1); F = F1; |
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |
if ( type(Heu=getopt(heuristic)) == -1 ) Heu = 0; |