=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/primdec,v retrieving revision 1.4 retrieving revision 1.8 diff -u -p -r1.4 -r1.8 --- OpenXM_contrib2/asir2000/lib/primdec 2001/01/15 05:18:20 1.4 +++ OpenXM_contrib2/asir2000/lib/primdec 2006/10/03 08:16:55 1.8 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/lib/primdec,v 1.3 2000/08/22 05:04:22 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/lib/primdec,v 1.7 2006/02/24 01:15:56 noro Exp $ */ /* Primary decomposition & Radical decomposition program */ /* written by T.Shimoyama, Fujitsu Lab. Date: 1995.10.12 */ @@ -64,8 +64,12 @@ COMMONCHECK if 1 : redundancy check by intersection (i SELECTFLAG selection strategy of separators (0 -- 3) */ -if (vtype(minipoly) != 3) load("gr")$$ +if (!module_definedp("gr")) load("gr")$ else {}$ +module primdec $ + /* Empty for now. It will be used in a future. */ +endmodule$ + #define GR(R,F,V,O) T2=newvect(4,time());R=dp_gr_main(F,V,0,0,O);GRTIME+=newvect(4,time())-T2; #define HGRM(R,F,V,O) T2=newvect(4,time());R=dp_gr_main(F,V,1,1,O);GRTIME+=newvect(4,time())-T2; #define NF(R,IN,F,G,O) T2=newvect(4,time());R=dp_nf(IN,F,G,O);NFTIME+=newvect(4,time())-T2; @@ -453,11 +457,17 @@ def extraction(GF,Pr,VL) V = minalgdep(Pr,VL,PRIMEORD); U = listminus(VL,V); V0 = append(V,U); +#if 0 + /* This may be a bug. GF is not a GB w.r.t the elimination order */ if ( V0 != VL ) { ORD = [[TMPORD1,length(V)],[TMPORD2,length(U)]]; GR(G,GF,V0,ORD); } else G = GF; +#else + ORD = [[TMPORD1,length(V)],[TMPORD2,length(U)]]; + GR(G,GF,V0,ORD); +#endif dp_ord(TMPORD1); for (LL = [],HC = 1,I = 0; I < length(G); I++) LL = append(LL,cdr(fctr(dp_hc(dp_ptod(G[I],V))))); @@ -1384,8 +1394,8 @@ def zraddec(F,X) /* contraction from V to X */ def radcont(Q,V,X) { - dp_ord(irem(PRIMEORD,3)); for (R=[],I=length(Q)-1;I>=0;I--) { + dp_ord(irem(PRIMEORD,3)); G=Q[I]; for (E=1,J=0;J