source: git/Singular/splist.h @ 4508ce5

fieker-DuValspielwiese
Last change on this file since 4508ce5 was 7885020, checked in by Hans Schönemann <hannes@…>, 25 years ago
* hannes: integrated "spectrum" by Stefan Endrass, inactive by default (Makefile.in claptmpl.cc feResource.cc iparith.cc mod2.h.in tok.h GMPrat.h GMPrat.cc kmatrix.h multicnt.h multicnt.cc npolygon.h npolygon.cc semic.h semic.cc spectrum.h spectrum.cc splist.h splist.cc) git-svn-id: file:///usr/local/Singular/svn/trunk@3423 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.3 KB
Line 
1// ----------------------------------------------------------------------------
2//  splist.h
3//  begin of file
4//  Stephan Endrass, endrass@mathematik.uni-mainz.de
5//  23.7.99
6// ----------------------------------------------------------------------------
7
8// ----------------------------------------------------------------------------
9//  Description: the class  spectrumPolyList  is to hold monomials
10//  and their normal forms with respect to a given standard basis
11//  and a given ordering. On this list we run a standard basis
12//  conversion algorithm to compute  the spectrum
13// ----------------------------------------------------------------------------
14
15#ifndef SPLIST_H
16#define SPLIST_H
17
18enum    spectrumState
19{
20    spectrumOK,
21    spectrumZero,
22    spectrumBadPoly,
23    spectrumNoSingularity,
24    spectrumNotIsolated,
25    spectrumDegenerate,
26    spectrumWrongRing,
27    spectrumNoHC,
28    spectrumUnspecErr
29};
30
31// ----------------------------------------------------------------------------
32
33class spectrumPolyNode
34{
35public:
36
37    spectrumPolyNode    *next;
38    poly                mon;
39    Rational            weight;
40    poly                nf;
41
42    spectrumPolyNode( );
43    spectrumPolyNode( spectrumPolyNode*,poly,const Rational&,poly );
44    ~spectrumPolyNode( );
45
46    void    copy_zero   ( void );
47    void    copy_shallow( spectrumPolyNode*,poly,const Rational&,poly );
48    void    copy_shallow( spectrumPolyNode& );
49};
50
51// ----------------------------------------------------------------------------
52
53class spectrumPolyList
54{
55public:
56
57    spectrumPolyNode       *root;
58    int             N;
59    newtonPolygon   *np;
60
61    spectrumPolyList( );
62    spectrumPolyList( newtonPolygon* );
63    ~spectrumPolyList( );
64
65    void    copy_zero   ( void );
66    void    copy_shallow( spectrumPolyNode*,int,newtonPolygon* );
67    void    copy_shallow( spectrumPolyList& );
68
69    void    insert_node( poly,poly );
70    void    delete_node( spectrumPolyNode** );
71
72    void    delete_monomial( poly );
73
74    spectrumState  spectrum( lists*,int );
75
76    #ifdef SPLIST_PRINT
77        friend ostream & operator << ( ostream&,const spectrumPolyList& );
78    #endif
79};
80
81#endif /* SPLIST_H */
82
83// ----------------------------------------------------------------------------
84//  splist.h
85//  end of file
86// ----------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.