=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/primdec_mod,v retrieving revision 1.3 retrieving revision 1.14 diff -u -p -r1.3 -r1.14 --- OpenXM_contrib2/asir2000/lib/primdec_mod 2003/04/20 07:50:45 1.3 +++ OpenXM_contrib2/asir2000/lib/primdec_mod 2004/07/30 02:24:11 1.14 @@ -1,14 +1,17 @@ +/* $OpenXM: OpenXM_contrib2/asir2000/lib/primdec_mod,v 1.13 2004/02/09 23:37:12 noro Exp $ */ + extern Hom,GBTime$ extern DIVLIST,INTIDEAL,ORIGINAL,ORIGINALDIMENSION,STOP,Trials,REM$ extern T_GRF,T_INT,T_PD,T_MP$ extern BuchbergerMinipoly,PartialDecompByLex,ParallelMinipoly$ extern B_Win,D_Win$ extern COMMONCHECK_SF,CID_SF$ -extern FFF_LOADED_BY_PRIMDEC_MOD$ -extern GR_LOADED_BY_PRIMDEC_MOD$ -if(!FFF_LOADED_BY_PRIMDEC_MOD) load("fff"); else ; FFF_LOADED_BY_PRIMDEC_MOD = 1$ -if(!GR_LOADED_BY_PRIMDEC_MOD) load("gr"); else ; GR_LOADED_BY_PRIMDEC_MOD = 1$ +if (!module_definedp("fff")) load("fff"); else $ +if (!module_definedp("gr")) load("gr"); else $ +module primdec_mod $ + /* Empty for now. It will be used in a future. */ +endmodule $ /*==============================================*/ /* prime decomposition of ideals over */ @@ -134,7 +137,7 @@ def frobeniuskernel_main(P,VSet,WSet) XSet=append(VSet,WSet); NewOrder=[[0,length(VSet)],[0,length(WSet)]]; - Char=setmod_ff()[0]; + Char=characteristic_ff(); for (I=0;I= 0; I-- ) GI = cons(I,GI); MB = dp_mbase(HL); DIM = length(MB); UT = newvect(DIM); - U = dp_ptod(ptosfp(F),V); + U = dp_ptod(simp_ff(F),V); U = dp_nf_f(GI,U,PS,1); for ( I = 0; I < DIM; I++ ) UT[I] = [MB[I],dp_nf_f(GI,U*MB[I],PS,1)]; - T = dp_ptod(ptosfp(1),[V0]); - TT = dp_ptod(ptosfp(1),V); + T = dp_ptod(simp_ff(1),[V0]); + TT = dp_ptod(simp_ff(1),V); G = H = [[TT,T]]; for ( I = 1; ; I++ ) { if ( dp_gr_print() ) print(".",2); - T = dp_ptod(ptosfp(V0^I),[V0]); + T = dp_ptod(simp_ff(V0^I),[V0]); TT = dp_nf_tab_f(H[0][0],UT); H = cons([TT,T],H); L = dp_lnf_f([TT,T],G); @@ -2436,7 +2445,7 @@ def minipoly_sf_rat(G,V,F,V0) Vc = setminus(vars(G),V); Gf = cons(V0-F,G); Vf = append(V,[V0]); - G3 = dp_gr_f_main(map(ptosfp,Gf),Vf,0,3); + G3 = dp_gr_f_main(map(simp_ff,Gf),Vf,0,3); for ( T = G3; T != []; T = cdr(T) ) { Vt = setminus(vars(car(T)),Vc); if ( Vt == [V0] ) @@ -2819,7 +2828,7 @@ def henleq_gsl_sfrat(L,B,Vc,Eval) X = map(subst,X,V0,V0-E0); if ( zerovector(RESTA*X+RESTB) ) { if ( dp_gr_print() ) print("end",0); - return [X,ptosfp(1)]; + return [X,simp_ff(1)]; } else return 0; } else if ( COUNT == CCC ) { @@ -2882,7 +2891,7 @@ def henleq_gsl_sfrat_higher(L,B,Vc,Eval) X = map(mshift,X,Vc,E,-1); if ( zerovector(RESTA*X+RESTB) ) { if ( dp_gr_print() ) print("end",0); - return [X,ptosfp(1)]; + return [X,simp_ff(1)]; } else return 0; } else if ( COUNT == CCC ) { @@ -2992,7 +3001,7 @@ def polyvtoratv_higher(Vect,Vc,K) def polytorat_gcd(F,V,K) { if ( deg(F,V) < K ) - return [F,ptosfp(1)]; + return [F,simp_ff(1)]; F1 = Mod^(K*2); F2 = F; B1 = 0; B2 = 1; while ( 1 ) { @@ -3024,7 +3033,7 @@ def polytorat_gcd(F,V,K) def polytorat(F,V,Mat,K) { if ( deg(F,V) < K ) - return [F,ptosfp(1)]; + return [F,simp_ff(1)]; for ( I = 0; I < K; I++ ) for ( J = 0; J < K; J++ ) Mat[I][J] = coef(F,I+K-J); @@ -3046,7 +3055,7 @@ def polytorat_higher(F,V,K) { if ( K < 2 ) return 0; if ( homogeneous_deg(F) < K ) - return [F,ptosfp(1)]; + return [F,simp_ff(1)]; D = create_icpoly(V,K); C = extract_coef(D*F,V,K,2*K); Vc = vars(C); @@ -3151,7 +3160,7 @@ def ideal_uniq(L) /* sub procedure of welldec and norm R = append(R,[L[I]]); else { for (J = 0; J < length(R); J++) - if ( gb_comp(L[I],R[J]) ) + if ( gb_comp_old(L[I],R[J]) ) break; if ( J == length(R) ) R = append(R,[L[I]]); @@ -3167,7 +3176,7 @@ def ideal_uniq_by_first(L) /* sub procedure of welldec R = append(R,[L[I]]); else { for (J = 0; J < length(R); J++) - if ( gb_comp(L[I][0],R[J][0]) ) + if ( gb_comp_old(L[I][0],R[J][0]) ) break; if ( J == length(R) ) R = append(R,[L[I]]); @@ -3228,7 +3237,7 @@ def gr_fctr_sf(FL,VL,Ord) for (TP = [],I = 0; I