Changeset 32f8ae in git for Singular/LIB


Ignore:
Timestamp:
Mar 4, 2011, 10:40:18 AM (13 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
e1b97a7206fd50919b213db8b84df958b1aa819a
Parents:
5ec7e30c5061dc69ea8a990af082b8d61c6a618a
Message:
format

git-svn-id: file:///usr/local/Singular/svn/trunk@13927 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/fpadim.lib

    r5ec7e3 r32f8ae  
    142142    {for (i3 = 1; i3 <= n; i3++)
    143143      {for (i4 = 1; i4 <= (n^(i1-1)); i4++)
    144         {M[i2,i1] = i3;
    145           i2 = i2 + 1;
    146         }
     144        {M[i2,i1] = i3;
     145          i2 = i2 + 1;
     146        }
    147147      }
    148148    }
     
    191191      for (j = 1; j<= size(P); j++)
    192192      {if (P[j] <= size(Vt))
    193         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    194           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    195         }
     193        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     194          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     195        }
    196196      }
    197197      if (w == 0)
    198198      {vector Vtt;
    199         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    200         M = M,Vtt;
    201         kill Vtt;
     199        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     200        M = M,Vtt;
     201        kill Vtt;
    202202      }
    203203    }
     
    207207      for (i = 1; i <= size(M); i++)
    208208      {kill Vt; intvec Vt;
    209         for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
    210         dimen = dimen + 1 + findDimen(Vt,n,L,P);
     209        for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
     210        dimen = dimen + 1 + findDimen(Vt,n,L,P);
    211211      }
    212212      return(dimen);
     
    220220      for (j = 1; j<= size(P); j++)
    221221      {if (P[j] <= size(Vt))
    222         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    223           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    224         }
     222        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     223          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     224        }
    225225      }
    226226      if (w == 0) {vector Vtt;
    227         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    228         M = M,Vtt;
    229         kill Vtt;
     227        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     228        M = M,Vtt;
     229        kill Vtt;
    230230      }
    231231    }
     
    235235      for (i = 1; i <= size(M); i++)
    236236      {kill Vt; intvec Vt;
    237         for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
    238         dimen = dimen + 1 + findDimen(Vt,n,L,P,degbound);
     237        for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
     238        dimen = dimen + 1 + findDimen(Vt,n,L,P,degbound);
    239239      }
    240240      return(dimen);
     
    255255      for (j = 1; j <= size(P); j++)
    256256      {if (P[j] <= size(Vt))
    257         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    258           if (isInMat(Vt2,L[j]) > 0)
    259           {w = 1; break;}
    260         }
     257        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     258          if (isInMat(Vt2,L[j]) > 0)
     259          {w = 1; break;}
     260        }
    261261      }
    262262      if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);}
     
    272272      for (it = 1; it <= j; it++)
    273273      { for(it2 = 1; it2 <= nrows(M);it2++)
    274         {Mt[it,it2] = int(leadcoef(M[it2,it]));}
     274        {Mt[it,it2] = int(leadcoef(M[it2,it]));}
    275275      }
    276276      Vt = V[(size(V)-ld+1)..size(V)];
     
    279279      else
    280280      {vector Vtt;
    281         for (it =1; it <= size(Vt); it++)
    282         {Vtt = Vtt + Vt[it]*gen(it);}
    283         M = M,Vtt;
    284         kill Vtt;
    285         for (i = 1; i <= n; i++)
    286         {Vt = V,i; w = 0;
    287           for (j = 1; j <= size(P); j++)
    288           {if (P[j] <= size(Vt))
    289             {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    290               //L[j]; type(L[j]);Vt2;type(Vt2);
    291               if (isInMat(Vt2,L[j]) > 0)
    292               {w = 1; break;}
    293             }
    294           }
    295           if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);}
    296           if (r == 1) {break;}
    297         }
    298         return(r);
     281        for (it =1; it <= size(Vt); it++)
     282        {Vtt = Vtt + Vt[it]*gen(it);}
     283        M = M,Vtt;
     284        kill Vtt;
     285        for (i = 1; i <= n; i++)
     286        {Vt = V,i; w = 0;
     287          for (j = 1; j <= size(P); j++)
     288          {if (P[j] <= size(Vt))
     289            {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     290              //L[j]; type(L[j]);Vt2;type(Vt2);
     291              if (isInMat(Vt2,L[j]) > 0)
     292              {w = 1; break;}
     293            }
     294          }
     295          if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);}
     296          if (r == 1) {break;}
     297        }
     298        return(r);
    299299      }
    300300    }
     
    308308      for (i = 1; i <= n; i++)
    309309      {Vt = V,i; w = 0;
    310         for (j = 1; j <= size(P); j++)
    311         {if (P[j] <= size(Vt))
    312           {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    313             //L[j]; type(L[j]);Vt2;type(Vt2);
    314             if (isInMat(Vt2,L[j]) > 0)
    315             {w = 1; break;}
    316           }
    317         }
    318         if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);}
    319         if (r == 1) {break;}
     310        for (j = 1; j <= size(P); j++)
     311        {if (P[j] <= size(Vt))
     312          {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     313            //L[j]; type(L[j]);Vt2;type(Vt2);
     314            if (isInMat(Vt2,L[j]) > 0)
     315            {w = 1; break;}
     316          }
     317        }
     318        if (w == 0) {r = findCycle(Vt,L,P,n,ld,M);}
     319        if (r == 1) {break;}
    320320      }
    321321      return(r);
     
    342342      for (j = 1; j<= size(P); j++)
    343343      {if (P[j] <= size(Vt))
    344         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    345           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    346         }
     344        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     345          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     346        }
    347347      }
    348348      if (w == 0)
    349349      {vector Vtt;
    350         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    351         M = M,Vtt;
    352         kill Vtt;
     350        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     351        M = M,Vtt;
     352        kill Vtt;
    353353      }
    354354    }
     
    358358      for (i = 1; i <= size(M); i++)
    359359      {kill Vt; intvec Vt;
    360         for (j =1; j <= size(M[i]); j++) {Vt[j] =  int(leadcoef(M[i][j]));}
    361         h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1);
     360        for (j =1; j <= size(M[i]); j++) {Vt[j] =  int(leadcoef(M[i][j]));}
     361        h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1);
    362362      }
    363363      if (size(H1) < (size(V)+2)) {H1[(size(V)+2)] = h1;}
     
    374374      for (j = 1; j<= size(P); j++)
    375375      {if (P[j] <= size(Vt))
    376         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    377           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    378         }
     376        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     377          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     378        }
    379379      }
    380380      if (w == 0)
    381381      {vector Vtt;
    382         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    383         M = M,Vtt;
    384         kill Vtt;
     382        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     383        M = M,Vtt;
     384        kill Vtt;
    385385      }
    386386    }
     
    390390      for (i = 1; i <= size(M); i++)
    391391      {kill Vt; intvec Vt;
    392         for (j =1; j <= size(M[i]); j++)
    393         {Vt[j] =  int(leadcoef(M[i][j]));}
    394         h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1,degbound);
     392        for (j =1; j <= size(M[i]); j++)
     393        {Vt[j] =  int(leadcoef(M[i][j]));}
     394        h1 = h1 + 1; H1 = findHCoeff(Vt,n,L,P,H1,degbound);
    395395      }
    396396      if (size(H1) < (size(V)+2)) { H1[(size(V)+2)] = h1;}
     
    419419      for (j = 1; j<= size(P); j++)
    420420      {if (P[j] <= size(Vt))
    421         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    422           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    423         }
     421        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     422          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     423        }
    424424      }
    425425      if (w == 0)
    426426      {vector Vtt;
    427         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    428         M = M,Vtt;
    429         kill Vtt;
     427        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     428        M = M,Vtt;
     429        kill Vtt;
    430430      }
    431431    }
     
    435435      for (i = 1; i <= size(M); i++)
    436436      {kill Vt; intvec Vt;
    437         for (j =1; j <= size(M[i]); j++)
    438         {Vt[j] =  int(leadcoef(M[i][j]));}
    439         if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;}
    440         else
    441         {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;}
    442         R = findHCoeffMis(Vt,n,L,P,R);
     437        for (j =1; j <= size(M[i]); j++)
     438        {Vt[j] =  int(leadcoef(M[i][j]));}
     439        if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;}
     440        else
     441        {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;}
     442        R = findHCoeffMis(Vt,n,L,P,R);
    443443      }
    444444      return(R);
     
    456456      for (j = 1; j<= size(P); j++)
    457457      {if (P[j] <= size(Vt))
    458         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    459           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    460         }
     458        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     459          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     460        }
    461461      }
    462462      if (w == 0)
    463463      {vector Vtt;
    464         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    465         M = M,Vtt;
    466         kill Vtt;
     464        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     465        M = M,Vtt;
     466        kill Vtt;
    467467      }
    468468    }
     
    472472      for (i = 1; i <= ncols(M); i++)
    473473      {kill Vt; intvec Vt;
    474         for (j =1; j <= size(M[i]); j++)
    475         {Vt[j] =  int(leadcoef(M[i][j]));}
    476         if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;}
    477         else
    478         {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;}
    479         R = findHCoeffMis(Vt,n,L,P,R,degbound);
     474        for (j =1; j <= size(M[i]); j++)
     475        {Vt[j] =  int(leadcoef(M[i][j]));}
     476        if (size(R[1]) < (size(V)+2)) { R[1][(size(V)+2)] = 1;}
     477        else
     478        {R[1][(size(V)+2)] = R[1][(size(V)+2)] + 1;}
     479        R = findHCoeffMis(Vt,n,L,P,R,degbound);
    480480      }
    481481      return(R);
     
    500500      for (j = 1; j<= size(P); j++)
    501501      {if (P[j] <= size(Vt))
    502         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    503           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    504         }
     502        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     503          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     504        }
    505505      }
    506506      if (w == 0)
    507507      {vector Vtt;
    508         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    509         M = M,Vtt;
    510         kill Vtt;
     508        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     509        M = M,Vtt;
     510        kill Vtt;
    511511      }
    512512    }
     
    520520      for (i = 1; i <= size(M); i++)
    521521      {kill Vt; intvec Vt;
    522         for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
    523         R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R);
     522        for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
     523        R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R);
    524524      }
    525525      return(R);
     
    537537      for (j = 1; j<= size(P); j++)
    538538      {if (P[j] <= size(Vt))
    539         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    540           if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
    541         }
     539        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     540          if (isInMat(Vt2,L[j]) > 0) {w = 1; break;}
     541        }
    542542      }
    543543      if (w == 0)
    544544      {vector Vtt;
    545         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    546         M = M,Vtt;
    547         kill Vtt;
     545        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     546        M = M,Vtt;
     547        kill Vtt;
    548548      }
    549549    }
     
    557557      for (i = 1; i <= size(M); i++)
    558558      {kill Vt; intvec Vt;
    559         for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
    560         R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R,degbound);
     559        for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
     560        R[1] = R[1] + 1; R = findMisDim(Vt,n,L,P,R,degbound);
    561561      }
    562562      return(R);
     
    586586      for (j = 1; j <= size(P); j++)
    587587      {if (P[j] <= size(Vt))
    588         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    589           if (isInMat(Vt2,L[j]) > 0)
    590           {w = 1; break;}
    591         }
     588        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     589          if (isInMat(Vt2,L[j]) > 0)
     590          {w = 1; break;}
     591        }
    592592      }
    593593      if (w == 0)
    594594      {vector Vtt;
    595         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    596         M = M,Vtt;
    597         kill Vtt;
     595        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     596        M = M,Vtt;
     597        kill Vtt;
    598598      }
    599599    }
     
    603603      for (i = 1; i <= size(M); i++)
    604604      {kill Vt; intvec Vt;
    605         for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
    606         R = R + findmistletoes(Vt,n,L,P);
     605        for (j =1; j <= size(M[i]); j++){Vt[j] =  int(leadcoef(M[i][j]));}
     606        R = R + findmistletoes(Vt,n,L,P);
    607607      }
    608608      return(R);
     
    617617      for (j = 1; j <= size(P); j++)
    618618      {if (P[j] <= size(Vt))
    619         {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
    620           if (isInMat(Vt2,L[j]) > 0){w = 1; break;}
    621         }
     619        {Vt2 = Vt[(size(Vt)-P[j]+1)..size(Vt)];
     620          if (isInMat(Vt2,L[j]) > 0){w = 1; break;}
     621        }
    622622      }
    623623      if (w == 0)
    624624      {vector Vtt;
    625         for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
    626         M = M,Vtt;
    627         kill Vtt;
     625        for (it = 1; it <= size(Vt); it++){Vtt = Vtt + Vt[it]*gen(it);}
     626        M = M,Vtt;
     627        kill Vtt;
    628628      }
    629629    }
     
    633633      for (i = 1; i <= ncols(M); i++)
    634634      {kill Vt; intvec Vt;
    635         for (j =1; j <= size(M[i]); j++)
    636         {Vt[j] =  int(leadcoef(M[i][j]));}
    637         //Vt; typeof(Vt); size(Vt);
    638         R = R + findmistletoes(Vt,n,L,P,degbound);
     635        for (j =1; j <= size(M[i]); j++)
     636        {Vt[j] =  int(leadcoef(M[i][j]));}
     637        //Vt; typeof(Vt); size(Vt);
     638        R = R + findmistletoes(Vt,n,L,P,degbound);
    639639      }
    640640      return(R);
     
    16511651@*        degbound <= attrib(basering,uptodeg) holds.
    16521652NOTE: - If L is the list returned, then L[1] is an integer, the K-dimension,
    1653 @*      L[2] is an intvec, the Hilbert series and L[3] is an ideal, 
     1653@*      L[2] is an intvec, the Hilbert series and L[3] is an ideal,
    16541654@*      the mistletoes
    16551655@*    - If degbound is set, there will be a degree bound added. 0 means no
     
    20412041
    20422042
    2043 proc tst_fpadim()
    2044 {
    2045   example ivDHilbert;
    2046   example ivDHilbertSickle;
    2047   example ivDimCheck;
    2048   example ivHilbert;
    2049   example ivKDim;
    2050   example ivMis2Base;
    2051   example ivMis2Dim;
    2052   example ivOrdMisLex;
    2053   example ivSickle;
    2054   example ivSickleHil;
    2055   example ivSickleDim;
    2056   example lpDHilbert;
    2057   example lpDHilbertSickle;
    2058   example lpHilbert;
    2059   example lpDimCheck;
    2060   example lpKDim;
    2061   example lpMis2Base;
    2062   example lpMis2Dim;
    2063   example lpOrdMisLex;
    2064   example lpSickle;
    2065   example lpSickleHil;
    2066   example lpSickleDim;
    2067   example sickle;
    2068   example ivL2lpI;
    2069   example iv2lp;
    2070   example iv2lpList;
    2071   example iv2lpMat;
    2072   example lp2iv;
    2073   example lp2ivId;
    2074   example lpId2ivLi;
    2075 }
    2076 
    2077 
    2078 
    2079 
    2080 
    20812043/*
    20822044  Here are some examples one may try. Just copy them into your console.
Note: See TracChangeset for help on using the changeset viewer.