version 1.1, 2006/03/12 00:27:20 |
version 1.3, 2014/09/05 11:55:19 |
Line 8 localf membership_test; |
|
Line 8 localf membership_test; |
|
localf dp_chrem,intdptoratdp,intdpltoratdpl; |
localf dp_chrem,intdptoratdp,intdpltoratdpl; |
localf comp_by_ht,dp_gr_mod,gr_chrem; |
localf comp_by_ht,dp_gr_mod,gr_chrem; |
localf construct_sqfrbasis; |
localf construct_sqfrbasis; |
|
localf split; |
|
|
/* |
/* |
* G : a 0-dim lex gb, reduced |
* G : a 0-dim lex gb, reduced |
Line 71 def inverse_or_split(V,Id,F) |
|
Line 72 def inverse_or_split(V,Id,F) |
|
} |
} |
} |
} |
|
|
|
def split(V,Id,F,Ord) |
|
{ |
|
Id = map(ptozp,Id); |
|
N = length(V); |
|
dp_ord(Ord); |
|
set_field(Id,V,Ord); |
|
DF = dptodalg(dp_ptod(F,V)); |
|
Ret = inv_or_split_dalg(DF); |
|
/* Ret = GB(Id:F) */ |
|
/* compute GB(Id+<f>) */ |
|
Gquo = append(map(ptozp,map(dp_dtop,Ret,V)),Id); |
|
/* inter-reduction */ |
|
Gquo = nd_gr_postproc(Gquo,V,0,Ord,0); |
|
DTotal = linear_dim(Id,V,Ord); |
|
Dquo = linear_dim(Gquo,V,Ord); |
|
Drem = DTotal-Dquo; |
|
B = cons(F,Id); |
|
Grem = gr_chrem(B,V,Ord|dim=Drem); |
|
return [map(ptozp,Gquo),map(ptozp,Grem)]; |
|
} |
|
|
/* add F(X,V) to Id(B) */ |
/* add F(X,V) to Id(B) */ |
/* returns a list of splitted ideals */ |
/* returns a list of splitted ideals */ |
/* B should be a triangular basis */ |
/* B should be a triangular basis */ |
Line 115 def sort_lex_dec(B,V) |
|
Line 137 def sort_lex_dec(B,V) |
|
{ |
{ |
dp_ord(2); |
dp_ord(2); |
B = map(dp_ptod,B,V); |
B = map(dp_ptod,B,V); |
B = vtol(qsort(ltov(B),comp_by_ht)); |
B = vtol(qsort(ltov(B),de.comp_by_ht)); |
B = map(dp_dtop,B,V); |
B = map(dp_dtop,B,V); |
return reverse(B); |
return reverse(B); |
} |
} |
Line 124 def sort_lex_inc(B,V) |
|
Line 146 def sort_lex_inc(B,V) |
|
{ |
{ |
dp_ord(2); |
dp_ord(2); |
B = map(dp_ptod,B,V); |
B = map(dp_ptod,B,V); |
B = vtol(qsort(ltov(B),comp_by_ht)); |
B = vtol(qsort(ltov(B),de.comp_by_ht)); |
B = map(dp_dtop,B,V); |
B = map(dp_dtop,B,V); |
return B; |
return B; |
} |
} |
Line 199 def intdpltoratdpl(G,Mod,M) |
|
Line 221 def intdpltoratdpl(G,Mod,M) |
|
R = cons(T,R); |
R = cons(T,R); |
} |
} |
R = reverse(R); |
R = reverse(R); |
return vtol(qsort(newvect(length(R),R),comp_by_ht)); |
return vtol(qsort(newvect(length(R),R),de.comp_by_ht)); |
} |
} |
|
|
def intdptoratdp(F,Mod,M) |
def intdptoratdp(F,Mod,M) |
Line 240 def monic_gb(G,V,O,P) |
|
Line 262 def monic_gb(G,V,O,P) |
|
dp_ord(O); setmod(P); |
dp_ord(O); setmod(P); |
D = map(dp_ptod,G,V); |
D = map(dp_ptod,G,V); |
D = map(dp_monic_mod,D,P); |
D = map(dp_monic_mod,D,P); |
D = vtol(qsort(newvect(length(D),D),comp_by_ht)); |
D = vtol(qsort(newvect(length(D),D),de.comp_by_ht)); |
return [D,map(dp_ht,D)]; |
return [D,map(dp_ht,D)]; |
} |
} |
|
|