Changeset 8f57c0 in git for Singular


Ignore:
Timestamp:
May 7, 2012, 3:56:23 PM (12 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
Children:
4b2e47d69832168747120de4721b9900101c96c7
Parents:
6b6c822fcfbbabb80e5ab1e0487f5de527e8785a
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-05-07 15:56:23+02:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-05-10 18:23:39+02:00
Message:
further Schreyer Syzygy impl.

add: compute M_i
add: starting to traverse
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/schreyer.lib

    r6b6c82 r8f57c0  
    614614}
    615615
     616
     617LIB "poly.lib"; // for lcm
     618
     619
     620proc SSComputeLeadingSyzygyTerms(def L, int iCompShift)
     621{
     622  int @DEBUG = !system("with", "ndebug");
     623
     624  if( @DEBUG )
     625  {
     626    "SSComputeLeadingSyzygyTerms::Input: ";
     627    L;
     628    "iCompShift: ", iCompShift;
     629
     630  }
     631
     632  int i, j, r; intvec iv_ds;
     633  int N = ncols(L);
     634  def a, b;
     635  poly aa, bb;
     636
     637  bigint c;
     638
     639  ideal M;
     640
     641  module S = 0;
     642 
     643  for(i = 1; i <= N; i++)
     644  {
     645    a = L[i];
     646    "a: ", a;
     647    c = leadcomp(a);
     648    r = int(c);
     649    aa = a[r];
     650
     651    M = 0;
     652   
     653    for(j = i-1; j > 0; j--)
     654    {
     655      b = L[j];
     656      "b: ", b;
     657
     658      if( leadcomp(b) == c )
     659      {
     660        bb = b[r];
     661
     662        M[j] = (lcm(aa, bb) / aa);
     663      }
     664    }
     665
     666    M = simplify(M, 1 + 2 + 32);
     667
     668    iv_ds = sort(M, "ds", 1)[2]; // ,1 => reversed!
     669
     670    M = M[iv_ds];
     671   
     672    S = S, M * gen(i + iCompShift);
     673  }
     674
     675  S = simplify(S, 2);
     676
     677 
     678  if( @DEBUG )
     679  {
     680    "SSComputeLeadingSyzygyTerms::Output: ";
     681    S;
     682  }
     683
     684  return (S);
     685
     686}
     687
     688proc Traverse(mult, index, Leads, Tails, LSyz)
     689{
     690
     691
     692}
     693
     694
     695
    616696// module (N, LL, TT) = SSComputeSyzygy(L, T, @RANK); // shift syz.comp by @RANK!
    617697proc SSComputeSyzygy(def M, def L, def T, int iCompShift)
     
    639719  // !!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!! //
    640720  // !!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!! //
    641   // !!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!! //
     721  // !!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!! //
     722
     723  def a; bigint c; int r, k; poly aa;
     724 
     725  def LS = SSComputeLeadingSyzygyTerms(L, 0); // iCompShift // 0?
     726  for(k = ncols(LS); k >= 0; k-- )
     727  {
     728    a = LS[k];
     729    "A: ", a;
     730    c = leadcomp(a);
     731    r = int(c);
     732    aa = a[r];
     733
     734    Traverse(aa, r, L, T, LS);
     735  }
    642736
    643737
Note: See TracChangeset for help on using the changeset viewer.