1 | //////////////////////////////////////////////////////////////////////////// |
---|

2 | version="version spectrum.lib 4.1.2.0 Feb_2019 "; // $Id$ |
---|

3 | category="Singularities"; |
---|

4 | info=" |
---|

5 | LIBRARY: spectrum.lib Singularity Spectrum for Nondegenerate Singularities |
---|

6 | AUTHOR: S. Endrass |
---|

7 | |
---|

8 | PROCEDURES: |
---|

9 | spectrumnd(poly f[,1]); spectrum of nondegenerate isolated singularity f |
---|

10 | "; |
---|

11 | |
---|

12 | /////////////////////////////////////////////////////////////////////////////// |
---|

13 | |
---|

14 | proc spectrumnd (poly f,list #) |
---|

15 | "USAGE: spectrumnd(f[,1]); poly f |
---|

16 | ASSUME: basering has characteristic 0 and local ordering, |
---|

17 | f has isolated singularity at 0 and nondegenerate principal part |
---|

18 | RETURN: |
---|

19 | @format |
---|

20 | list S: |
---|

21 | ideal S[1]: spectral numbers in increasing order |
---|

22 | intvec S[2]: |
---|

23 | int S[2][i]: multiplicity of spectral number S[1][i] |
---|

24 | @end format |
---|

25 | NOTE: if a second argument 1 is given, |
---|

26 | no test for a degenerate principal part will be done |
---|

27 | SEE_ALSO: gmssing_lib |
---|

28 | KEYWORDS: singularities; Gauss-Manin connection; spectrum |
---|

29 | EXAMPLE: example spectrumnd; shows an example |
---|

30 | " |
---|

31 | { |
---|

32 | if((charstr(basering)!="0")&&(charstr(basering)!="QQ")) |
---|

33 | { |
---|

34 | ERROR("characteristic 0 expected"); |
---|

35 | } |
---|

36 | if(size(#)==0) |
---|

37 | { |
---|

38 | list S=system("spectrum",f); |
---|

39 | } |
---|

40 | else |
---|

41 | { |
---|

42 | list S=system("spectrum",f,#[1]); |
---|

43 | } |
---|

44 | ideal a=number(S[4][1])/S[5][1]-1; |
---|

45 | int i; |
---|

46 | for(i=S[3];i>1;i--) |
---|

47 | { |
---|

48 | a[i]=number(S[4][i])/S[5][i]-1; |
---|

49 | } |
---|

50 | return(list(a,S[6])); |
---|

51 | } |
---|

52 | example |
---|

53 | { "EXAMPLE:"; echo = 2; |
---|

54 | ring R=0,(x,y),ds; |
---|

55 | poly f=x^31+x^6*y^7+x^2*y^12+x^13*y^2+y^29; |
---|

56 | list s=spectrumnd(f); |
---|

57 | size(s[1]); |
---|

58 | s[1][22]; |
---|

59 | s[2][22]; |
---|

60 | } |
---|

61 | /////////////////////////////////////////////////////////////////////////////// |
---|

62 | |
---|