Changeset e5af4b5 in git for Singular/LIB/dmod.lib
- Timestamp:
- Jul 11, 2011, 12:43:21 PM (12 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
- Children:
- 4fc521c676af0050e38be17df2c243513aec9983
- Parents:
- 3b77086d506b6745e947edd3c323b6687e2d521c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/dmod.lib
r3b77086 re5af4b5 2441 2441 2442 2442 proc annfsBMI(ideal F, list #) 2443 "USAGE: annfsBMI(F [,eng ]); F an ideal, eng an optional int2443 "USAGE: annfsBMI(F [,eng,met]); F an ideal, eng, met optional ints 2444 2444 RETURN: ring 2445 PURPOSE: compute t he D-module structure of basering[1/f]*f^s where2446 @* f = F[1]*..*F[P], according to the algorithm by Briancon and Maisonobe.2445 PURPOSE: compute two kinds of Bernstein-Sato ideals, associated to 2446 @* f = F[1]*..*F[P], with the multivariate algorithm by Briancon and Maisonobe. 2447 2447 NOTE: activate the output ring with the @code{setring} command. In this ring, 2448 @* - the ideal LD is the needed D-mod structure,2449 @* - the list BS is the Bernsteinideal of a polynomial f = F[1]*..*F[P].2448 @* - the ideal LD is the annihilator of F[1]^s_1*..*F[P]^s_p, 2449 @* - the list or ideal BS is a Bernstein-Sato ideal of a polynomial f = F[1]*..*F[P]. 2450 2450 @* If eng <>0, @code{std} is used for Groebner basis computations, 2451 2451 @* 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. 2455 @* If the output ideal happens to be principal, the list of factors 2456 @* with their multiplicities is returned instead of the ideal. 2452 2457 @* If printlevel=1, progress debug messages will be printed, 2453 2458 @* if printlevel>=2, all the debug messages will be printed. … … 2456 2461 { 2457 2462 int eng = 0; 2463 int met = 0; 2458 2464 if ( size(#)>0 ) 2459 2465 { … … 2461 2467 { 2462 2468 eng = int(#[1]); 2469 } 2470 if ( size(#)>1 ) 2471 { 2472 if ( typeof(#[2]) == "int" ) 2473 { 2474 met = int(#[2]); 2475 } 2463 2476 } 2464 2477 } … … 2648 2661 ideal F = imap(save,F); // maybe ideal F = R01(I); ? 2649 2662 ideal K = imap(@R,K); // maybe ideal K = R01(I); ? 2650 poly f=1; 2651 for (j=1; j<=P; j++) 2652 { 2653 f = f*F[j]; 2654 } 2655 K = K,f; // to compute B (Bernstein-Sato ideal) 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 //K = K,F; // to compute Bsigma (see "On the computation of Bernstein-Sato ideals"; Castro, Ucha) 2676 K = K,F; 2677 dbprint(ppl,"// -2-1-1 computing the ideal B-Sigma from Castro-Ucha"); 2678 } 2656 2679 //j=2; // for example 2657 2680 //K = K,F[j]; // to compute Bj (see "On the computation of Bernstein-Sato ideals"; Castro, Ucha) 2658 //K = K,F; // to compute Bsigma (see "On the computation of Bernstein-Sato ideals"; Castro, Ucha)2659 2681 dbprint(ppl,"// -2-2- starting the elimination of _x,_Dx in @R2"); 2660 2682 dbprint(ppl-1, K); … … 2668 2690 dbprint(ppl,"// -3-1- the ring @R3(_s) is ready"); 2669 2691 ideal K3 = imap(@R2,K2); 2670 if ( size(K3)==1)2692 if (ncols(K3)==1) 2671 2693 { 2672 2694 poly p = K3[1]; 2673 dbprint(ppl,"// -3-2- factorization"); 2695 dbprint(ppl,"// -3-2- the Bernstein ideal is principal"); 2696 dbprint(ppl,"// -3-2-1- factorization"); 2674 2697 // Warning: now P is an integer 2675 2698 list Q = factorize(p); //with constants and multiplicities … … 2685 2708 else 2686 2709 { 2687 // conjecture : the Bernstein ideal is principal2710 // conjecture for some ideals: the Bernstein ideal is principal 2688 2711 dbprint(ppl,"// -3-2- the Bernstein ideal is not principal"); 2689 2712 ideal BS = K3; … … 2763 2786 ideal F = x,y,x+y; 2764 2787 printlevel = 0; 2765 def A = annfsBMI(F); 2766 setring A; 2767 LD; 2768 BS; 2788 def A = annfsBMI(F); setring A; 2789 LD; // annihilator 2790 BS; // Bernstein-Sato ideal 2791 // now, let us compute B-Sigma ideal 2792 setring r; 2793 def Sigma = annfsBMI(F,0,1); setring Sigma; 2794 LD; // annihilator 2795 BS; // Bernstein-Sato B-Sigma ideal 2769 2796 } 2770 2797 … … 5350 5377 PURPOSE: check whether M is holonomic over the base ring 5351 5378 NOTE: M is holonomic if 2*dim(M) = dim(R), where R is the 5352 base ring; dim sta ys for Gelfand-Kirillov dimension5379 base ring; dim stands for Gelfand-Kirillov dimension 5353 5380 EXAMPLE: example isHolonomic; shows examples 5354 5381 "
Note: See TracChangeset
for help on using the changeset viewer.