Changeset 4fc521 in git


Ignore:
Timestamp:
Jul 11, 2011, 8:38:25 PM (12 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
Children:
58b1160c31f60cc5b14e49848a7528f1889a1ba5
Parents:
e5af4b5bc5ff4018e9936109bc818b9e21ec2920
Message:
*levandov: also computation of Bi ideal added to annfsBMI, its syntax changed

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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/dmod.lib

    re5af4b5 r4fc521  
    24502450@*       If eng <>0, @code{std} is used for Groebner basis computations,
    24512451@*       otherwise, and by default @code{slimgb} is used.
    2452 @*       If met <>0, the B-Sigma ideal (cf. Castro and Ucha,
    2453 @*       'On the computation of Bernstein-Sato ideals', 2005). Otherwise, and by
    2454 @*       default, the ideal B (cf. the paper) is computed.
     2452@*       If met <0, the B-Sigma ideal (cf. Castro and Ucha,
     2453@*       'On the computation of Bernstein-Sato ideals', 2005) is computed.
     2454@*       If 0 < met < P, then the ideal B_P (cf. the paper) is computed.
     2455@*       Otherwise, and by default, the ideal B (cf. the paper) is computed.
    24552456@*       If the output ideal happens to be principal, the list of factors
    24562457@*       with their multiplicities is returned instead of the ideal.
     
    24812482  def save = basering;
    24822483  int N = nvars(basering);
    2483   int P = size(F);  //if F has some generators which are zero, int P = ncols(I);
     2484  //if F has some generators which are zero, int P = ncols(I);
     2485  int P = size(F); 
     2486  if (P < ncols(F))
     2487  {
     2488    F = simplify(F,2);
     2489  }
     2490  P = size(F);
     2491  if (P == 0)
     2492  {
     2493    ERROR("zero ideal in the input");
     2494  }
    24842495  int Nnew = 2*N+2*P;
    24852496  int i,j;
     
    26612672  ideal F = imap(save,F);  // maybe ideal F = R01(I); ?
    26622673  ideal K = imap(@R,K);    // maybe ideal K = R01(I); ?
    2663   if (met)
    2664   {
    2665     poly f=1;
    2666     for (j=1; j<=P; j++)
    2667     {
    2668       f = f*F[j];
    2669     }
    2670     K = K,f;       // to compute B (Bernstein-Sato ideal)
    2671     dbprint(ppl,"// -2-1-1 computing the ideal B from Castro-Ucha");
    2672   }
    2673   else
     2674
     2675  if (met <0)
    26742676  {
    26752677  //K = K,F;     // to compute Bsigma (see "On the computation of Bernstein-Sato ideals"; Castro, Ucha)
     
    26772679    dbprint(ppl,"// -2-1-1 computing the ideal B-Sigma from Castro-Ucha");
    26782680  }
     2681  if ( (met>0) && (met<=ncols(F) ) )
     2682  {
     2683        /* compute the ideal B_met */
    26792684  //j=2;         // for example
    26802685  //K = K,F[j];  // to compute Bj (see "On the computation of Bernstein-Sato ideals"; Castro, Ucha)
     2686    dbprint(ppl,"// -2-1-1 computing the ideal B_i from Castro-Ucha");
     2687    K = K, F[met];
     2688  }
     2689  if ( ( met == 0) || (met > ncols(F) ) )
     2690  {
     2691    // that is met ==0 or met> ncols(F)   
     2692    /* compute the ideal B */
     2693    poly f=1;
     2694    for (j=1; j<=P; j++)
     2695    {
     2696      f = f*F[j];
     2697    }
     2698    K = K,f;       // to compute B (Bernstein-Sato ideal)
     2699    dbprint(ppl,"// -2-1-1 computing the ideal B from Castro-Ucha");
     2700  }
    26812701  dbprint(ppl,"// -2-2- starting the elimination of _x,_Dx in @R2");
    26822702  dbprint(ppl-1, K);
     
    27862806  ideal F = x,y,x+y;
    27872807  printlevel = 0;
     2808  // *1* let us compute the B ideal
    27882809  def A = annfsBMI(F);    setring A;
    27892810  LD; // annihilator
    27902811  BS; // Bernstein-Sato ideal
    2791   // now, let us compute B-Sigma ideal
     2812  // *2* now, let us compute B-Sigma ideal
    27922813  setring r;
    2793   def Sigma = annfsBMI(F,0,1); setring Sigma;
    2794   LD; // annihilator
    2795   BS; // Bernstein-Sato B-Sigma ideal
     2814  def Sigma = annfsBMI(F,0,-1); setring Sigma;
     2815  print(matrix(lead(LD))); // compact form of leading
     2816  //  monomials from the annihilator
     2817  BS; // Bernstein-Sato B-Sigma ideal: it is principal,
     2818  // so factors and multiplicities are returned
     2819  // *3* and now, let us compute B-i ideal
     2820  setring r;
     2821  def Bi = annfsBMI(F,0,3); // that is F[3]=x+y is taken
     2822  setring Bi;
     2823  print(matrix(lead(LD)));   // compact form of leading
     2824  //  monomials from the annihilator
     2825  BS; // the B_3 ideal: it is principal, so factors
     2826  // and multiplicities are returned
    27962827}
    27972828
Note: See TracChangeset for help on using the changeset viewer.