source: git/Tst/Short/bug_tr679.tst @ fdda546

spielwiese
Last change on this file since fdda546 was d0bdb6, checked in by Hans Schoenemann <hannes@…>, 9 years ago
format
  • Property mode set to 100644
File size: 1.5 KB
Line 
1LIB "tst.lib";
2tst_init();
3
4// tr.679,683: bug in factorize
5LIB"primdec.lib";
6
7proc isSubset(ideal I,ideal J)
8{
9  if ( attrib(J,"isSB") == 0) { J = groebner(J); }
10  for(int i=ncols(I); i>0; i--)
11  {
12    if(reduce(I[i],J,1)!=0)
13    { return(0); }
14  }
15  return(1);
16}
17proc primDecsAreEquivalent(list L, list K)
18{
19  int s1 = size(L);
20  int s2 = size(K);
21  if(s1!=s2) { return(0); }
22  list L1, K1;
23  int i,j,t;
24  list N;
25  for(i=1; i<=s1; i++)
26  {
27    L1[i]=std(L[i][2]);
28    K1[i]=std(K[i][2]);
29  }
30  for(i=1; i<=s1; i++)
31  {
32    for(j=1; j<=s1; j++)
33    {
34      if(isSubset(L1[i],K1[j]))
35      {
36        if(isSubset(K1[j],L1[i]))
37        {
38          for(t=1; t<=size(N); t++)
39          {
40            if(N[t]==j) { return(0); }
41          }
42          N[size(N)+1]=j;
43        }
44      }
45    }
46  }
47  if ( size(N) != s1 ) { return(0); }
48  return(1);
49}
50
51ring r1 = (5,v),(x,y,z,w),dp;
52minpoly = (v^2-2);
53ideal I = (2*v)*x*y+(v)*x*w+z,(-v)*x^2*z+2*z;
54list L1, L2;
55int i ;
56
57for (i=0; i<20; i++)
58{
59    system("random",1803001481);
60    L1 = primdecGTZ (I);
61    L2 = primdecSY (I);
62    "equivalent?",primDecsAreEquivalent (L1,L2) ;
63}
64
65ring r2 = (3,v),(x,y,z,w),dp;
66minpoly = (v^2+1);
67ideal I = (v)*y-1,-x*y*z+z^2+w;
68for (i=1;i<10;i++)
69{
70list L1 = minAssGTZ(I);
71list L2 = minAssGTZ(I,"GTZ");
72list L3 = minAssGTZ(I,"facstd");
73L1;
74L2;
75L3;
76
77ideal I1 = std( L1[1] );
78ideal I2 = std( L2[1] );
79ideal I3 = std( L3[1] );
80
81idealsEqual(I1, I2);
82idealsEqual(I2, I3);
83
84kill L1,L2,L3,I1,I2,I3;
85
86poly f=xz+(-v)*z2+(-v)*w;
87factorize(f);
88
89kill f;
90}
91
92tst_status(1);$
Note: See TracBrowser for help on using the repository browser.