=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/testing/noro/Attic/new_pd.rr,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM/src/asir-contrib/testing/noro/Attic/new_pd.rr 2011/01/16 08:46:10 1.1 +++ OpenXM/src/asir-contrib/testing/noro/Attic/new_pd.rr 2011/01/19 00:51:38 1.2 @@ -284,6 +284,12 @@ T0 = time(); if ( First ) { PtR = prime_dec(G,V|indep=1,lexdec=Lexdec,mod=Mod,radical=1); Pt = PtR[0]; IntPt = PtR[1]; Rad = IntPt; + if ( gen_gb_comp(G,Rad,Mod) ) { + /* Gt is radical and Gt = cap Pt */ + for ( T = Pt, Qt = []; T != []; T = cdr(T) ) + Qt = cons([car(T)[0],car(T)[0],car(T)[1]],Qt); + return [reverse(Qt)]; + } } else Pt = colon_prime_dec(G,IntQ,V|lexdec=Lexdec,mod=Mod,para=Para); ACCUM_TIME(Tpd,RTpd) @@ -1458,7 +1464,7 @@ def elim_gb(G,V,PV,Mod,Ord) return G1; } else #if 1 -#if 1 +#if 0 G = dp_gr_main(G,V,0,0,Ord); #else G = nd_gr_trace(G,V,1,1,Ord); @@ -1656,20 +1662,29 @@ def ideal_list_intersection(L,V,Ord) N = length(L); if ( N == 0 ) return [1]; if ( N == 1 ) return fast_gb(L[0],V,Mod,Ord); - N2 = idiv(N,2); - for ( L1 = [], I = 0; I < N2; I++ ) L1 = cons(L[I],L1); - for ( L2 = []; I < N; I++ ) L2 = cons(L[I],L2); - if ( length(Para) >= 2 ) { - T1 = ["noro_pd.call_ideal_list_intersection",L1,V,Mod,Ord]; - T2 = ["noro_pd.call_ideal_list_intersection",L2,V,Mod,Ord]; - R = para_exec(Para,[T1,T2]); - I1 = R[0]; I2 = R[1]; + if ( N > 2 && (Len = length(Para)) >= 2 ) { + Div = N >= 2*Len ? Len : 2; + QR = iqr(N,Div); Q = QR[0]; R = QR[1]; + T = []; K = 0; + for ( I = 0; I < Div; I++ ) { + LenI = I