Changeset e645db in git for Singular/LIB/dmodapp.lib


Ignore:
Timestamp:
Apr 18, 2020, 1:52:40 AM (4 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
Children:
933ed85f7a4b64fb6b04964c04a137915354e36b
Parents:
57fbc7a35840961d9ffe380d87f3cc30a4574b66161411bdc5cc30f7965d2c36a5250edcb33d293e
Message:
Merge remote-tracking branch 'upstream/spielwiese' into spielwiese
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/dmodapp.lib

    r161411 re645db  
    140140  - changed charVariety: no homogenization is needed
    141141  - changed inForm: code is much simpler using jet
     142 
     143  06.04.20 by VL:
     144  - engine updated with 2 more modular choices
    142145
    143146*/
     
    153156LIB "qhmoduli.lib"; // for Max
    154157LIB "sing.lib";     // for slocus
     158LIB "ncModslimgb.lib"; // for modular noncomm GB
    155159
    156160
     
    263267
    264268proc engine(def I, int i)
     269"USAGE:  engine(I,i);  I ideal/module/matrix, i an int
     270RETURN:  the same type as I
     271PURPOSE: compute the Groebner basis of I with the algorithm, chosen via i
     272NOTE:    By default and if i=0, slimgb is used;
     273if i=1, std does the job;
     274if i=2, modular slimgb is run without final exactness check;
     275if i=3, modular slimgb is run with final exactness check.
     276EXAMPLE: example engine; shows examples
     277"
     278{
     279  /* std - slimgb mix */
     280  def J;
     281  //  ideal J;
     282  if ((i<=0) || (i>=4))
     283  {
     284      i = 0;
     285      J = slimgb(I);
     286  }
     287  if (i==1)
     288  {
     289    // without options -> strange! (ringlist?)
     290    intvec v = option(get);
     291    option(redSB);
     292    option(redTail);
     293    J = std(I);
     294    option(set, v);
     295  }
     296  if (i==2)
     297  {
     298      // modular slimgb without final exactness check
     299      J = ncmodslimgb(I,0);
     300  }
     301  if (i==3)
     302  {
     303      // modular slimgb with final exactness check
     304      J = ncmodslimgb(I,1);
     305  } 
     306  return(J);
     307}
     308example
     309{
     310  "EXAMPLE:"; echo = 2;
     311  ring r = 0,(x,y),Dp;
     312  ideal I  = y*(x3-y2),x*(x3-y2);
     313  engine(I,0); // uses slimgb
     314  engine(I,1); // uses std
     315  engine(I,2); // uses modular slimgb without exactness check
     316  engine(I,3); // uses modular slimgb with exactness check
     317}
     318
     319/*
     320proc engine(def I, int i)
    265321"USAGE:  engine(I,i);  I  ideal/module/matrix, i an int
    266322RETURN:  the same type as I
     
    295351  engine(I,0); // uses slimgb
    296352  engine(I,1); // uses std
    297 }
     353}
     354*/
    298355
    299356proc poly2list (poly f)
Note: See TracChangeset for help on using the changeset viewer.