[BACK]Return to primdec_mod CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / lib

Diff for /OpenXM_contrib2/asir2000/lib/primdec_mod between version 1.9 and 1.10

version 1.9, 2003/04/24 07:54:15 version 1.10, 2003/05/07 06:26:51
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/lib/primdec_mod,v 1.8 2003/04/21 02:02:16 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/lib/primdec_mod,v 1.9 2003/04/24 07:54:15 noro Exp $ */
   
 extern Hom,GBTime$  extern Hom,GBTime$
 extern DIVLIST,INTIDEAL,ORIGINAL,ORIGINALDIMENSION,STOP,Trials,REM$  extern DIVLIST,INTIDEAL,ORIGINAL,ORIGINALDIMENSION,STOP,Trials,REM$
Line 2204  def partial_decomp(B,V)
Line 2204  def partial_decomp(B,V)
                 map(ox_cmo_rpc,ParallelMinipoly,"setmod_ff",characteristic_ff(),extdeg_ff());                  map(ox_cmo_rpc,ParallelMinipoly,"setmod_ff",characteristic_ff(),extdeg_ff());
                 map(ox_pop_cmo,ParallelMinipoly);                  map(ox_pop_cmo,ParallelMinipoly);
         }          }
         B = map(ptosfp,B);          B = map(simp_ff,B);
         B = dp_gr_f_main(B,V,0,0);          B = dp_gr_f_main(B,V,0,0);
         R = partial_decomp0(B,V,length(V)-1);          R = partial_decomp0(B,V,length(V)-1);
         if ( PartialDecompByLex ) {          if ( PartialDecompByLex ) {
Line 2377  def minipoly_sf_by_buchberger(G,V,O,F,V0,Server)
Line 2377  def minipoly_sf_by_buchberger(G,V,O,F,V0,Server)
         if ( Server )          if ( Server )
                 ox_sync(0);                  ox_sync(0);
         Vc = cons(V0,setminus(vars(G),V));          Vc = cons(V0,setminus(vars(G),V));
         Gf = cons(ptosfp(V0-F),G);          Gf = cons(simp_ff(V0-F),G);
         Vf = append(V,Vc);          Vf = append(V,Vc);
         Gelim = dp_gr_f_main(Gf,Vf,1,[[0,length(V)],[0,length(Vc)]]);          Gelim = dp_gr_f_main(Gf,Vf,1,[[0,length(V)],[0,length(Vc)]]);
         for ( Gc = [], T = Gelim; T != []; T = cdr(T) ) {          for ( Gc = [], T = Gelim; T != []; T = cdr(T) ) {
Line 2412  def minipoly_sf_0dim(G,V,O,F,V0,Server)
Line 2412  def minipoly_sf_0dim(G,V,O,F,V0,Server)
         for ( I = Len - 1, GI = []; I >= 0; I-- )          for ( I = Len - 1, GI = []; I >= 0; I-- )
                 GI = cons(I,GI);                  GI = cons(I,GI);
         MB = dp_mbase(HL); DIM = length(MB); UT = newvect(DIM);          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);          U = dp_nf_f(GI,U,PS,1);
         for ( I = 0; I < DIM; I++ )          for ( I = 0; I < DIM; I++ )
                 UT[I] = [MB[I],dp_nf_f(GI,U*MB[I],PS,1)];                  UT[I] = [MB[I],dp_nf_f(GI,U*MB[I],PS,1)];
   
         T = dp_ptod(ptosfp(1),[V0]);          T = dp_ptod(simp_ff(1),[V0]);
         TT = dp_ptod(ptosfp(1),V);          TT = dp_ptod(simp_ff(1),V);
         G = H = [[TT,T]];          G = H = [[TT,T]];
   
         for ( I = 1; ; I++ ) {          for ( I = 1; ; I++ ) {
                 if ( dp_gr_print() )                  if ( dp_gr_print() )
                         print(".",2);                          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);                  TT = dp_nf_tab_f(H[0][0],UT);
                 H = cons([TT,T],H);                  H = cons([TT,T],H);
                 L = dp_lnf_f([TT,T],G);                  L = dp_lnf_f([TT,T],G);
Line 2443  def minipoly_sf_rat(G,V,F,V0)
Line 2443  def minipoly_sf_rat(G,V,F,V0)
         Vc = setminus(vars(G),V);          Vc = setminus(vars(G),V);
         Gf = cons(V0-F,G);          Gf = cons(V0-F,G);
         Vf = append(V,[V0]);          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) ) {          for ( T = G3; T != []; T = cdr(T) ) {
                 Vt = setminus(vars(car(T)),Vc);                  Vt = setminus(vars(car(T)),Vc);
                 if ( Vt == [V0] )                  if ( Vt == [V0] )
Line 2826  def henleq_gsl_sfrat(L,B,Vc,Eval)
Line 2826  def henleq_gsl_sfrat(L,B,Vc,Eval)
                         X = map(subst,X,V0,V0-E0);                          X = map(subst,X,V0,V0-E0);
                         if ( zerovector(RESTA*X+RESTB) ) {                          if ( zerovector(RESTA*X+RESTB) ) {
                                 if ( dp_gr_print() ) print("end",0);                                  if ( dp_gr_print() ) print("end",0);
                                 return [X,ptosfp(1)];                                  return [X,simp_ff(1)];
                         } else                          } else
                                 return 0;                                  return 0;
                 } else if ( COUNT == CCC ) {                  } else if ( COUNT == CCC ) {
Line 2889  def henleq_gsl_sfrat_higher(L,B,Vc,Eval)
Line 2889  def henleq_gsl_sfrat_higher(L,B,Vc,Eval)
                         X = map(mshift,X,Vc,E,-1);                          X = map(mshift,X,Vc,E,-1);
                         if ( zerovector(RESTA*X+RESTB) ) {                          if ( zerovector(RESTA*X+RESTB) ) {
                                 if ( dp_gr_print() ) print("end",0);                                  if ( dp_gr_print() ) print("end",0);
                                 return [X,ptosfp(1)];                                  return [X,simp_ff(1)];
                         } else                          } else
                                 return 0;                                  return 0;
                 } else if ( COUNT == CCC ) {                  } else if ( COUNT == CCC ) {
Line 2999  def polyvtoratv_higher(Vect,Vc,K)
Line 2999  def polyvtoratv_higher(Vect,Vc,K)
 def polytorat_gcd(F,V,K)  def polytorat_gcd(F,V,K)
 {  {
         if ( deg(F,V) < K )          if ( deg(F,V) < K )
                 return [F,ptosfp(1)];                  return [F,simp_ff(1)];
         F1 = Mod^(K*2); F2 = F;          F1 = Mod^(K*2); F2 = F;
         B1 = 0; B2 = 1;          B1 = 0; B2 = 1;
         while ( 1 ) {          while ( 1 ) {
Line 3031  def polytorat_gcd(F,V,K)
Line 3031  def polytorat_gcd(F,V,K)
 def polytorat(F,V,Mat,K)  def polytorat(F,V,Mat,K)
 {  {
         if ( deg(F,V) < K )          if ( deg(F,V) < K )
                 return [F,ptosfp(1)];                  return [F,simp_ff(1)];
         for ( I = 0; I < K; I++ )          for ( I = 0; I < K; I++ )
                 for ( J = 0; J < K; J++ )                  for ( J = 0; J < K; J++ )
                         Mat[I][J] = coef(F,I+K-J);                          Mat[I][J] = coef(F,I+K-J);
Line 3053  def polytorat_higher(F,V,K)
Line 3053  def polytorat_higher(F,V,K)
 {  {
         if ( K < 2 ) return 0;          if ( K < 2 ) return 0;
         if ( homogeneous_deg(F) < K )          if ( homogeneous_deg(F) < K )
                 return [F,ptosfp(1)];                  return [F,simp_ff(1)];
         D = create_icpoly(V,K);          D = create_icpoly(V,K);
         C = extract_coef(D*F,V,K,2*K);          C = extract_coef(D*F,V,K,2*K);
         Vc = vars(C);          Vc = vars(C);

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>