/usr/include/singular/singular/kernel/spectrum/npolygon.h is in libsingular4-dev-common 4.0.3+ds-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | // ----------------------------------------------------------------------------
// npolygon.h
// begin of file
// Stephan Endrass, endrass@mathematik.uni-mainz.de
// 23.7.99
// ----------------------------------------------------------------------------
#ifndef NPOLYGON_H
#define NPOLYGON_H
#include <kernel/spectrum/GMPrat.h>
// ----------------------------------------------------------------------------
// Class representing a linear form QQ^N-->QQ
// ----------------------------------------------------------------------------
class linearForm
{
private:
Rational *c; // the coefficients
int N; // number of coefficients
public:
linearForm( );
linearForm( const linearForm& );
~linearForm( );
linearForm & operator = ( const linearForm& );
friend int operator == ( const linearForm&,const linearForm& );
void copy_new ( int );
void copy_delete ( void );
void copy_zero ( void );
void copy_shallow ( linearForm& );
void copy_deep ( const linearForm& );
Rational weight ( poly, const ring r ) const;
Rational weight_shift ( poly, const ring r ) const;
Rational weight1 ( poly, const ring r ) const;
Rational weight_shift1( poly, const ring r ) const;
Rational pweight ( poly, const ring r ) const;
int positive ( void );
#ifdef NPOLYGON_PRINT
friend ostream & operator << ( ostream&,const linearForm& );
#endif
friend class newtonPolygon;
};
// ----------------------------------------------------------------------------
// Class representing a Newton polygon
// ----------------------------------------------------------------------------
class newtonPolygon
{
private:
linearForm *l; // the linear forms
int N; // number of linear forms
public:
newtonPolygon( );
newtonPolygon( const newtonPolygon& );
newtonPolygon( poly, const ring r );
~newtonPolygon( );
newtonPolygon & operator = ( const newtonPolygon& );
void copy_new ( int );
void copy_delete ( void );
void copy_zero ( void );
void copy_shallow( newtonPolygon& );
void copy_deep ( const newtonPolygon& );
void add_linearForm( const linearForm& );
Rational weight ( poly, const ring r ) const;
Rational weight_shift ( poly, const ring r ) const;
Rational weight1 ( poly, const ring r ) const;
Rational weight_shift1( poly, const ring r ) const;
//int is_sqh ( void ) const;
//Rational* sqh_weights( void ) const;
//int sqh_N ( void ) const;
#ifdef NPOLYGON_PRINT
friend ostream & operator << ( ostream&,const newtonPolygon& );
#endif
};
// ---------------------------------------
// inline functions for class linearForm
// ---------------------------------------
// ----------------------------------------------------------------------------
// Initialize with zero
// ----------------------------------------------------------------------------
inline void linearForm::copy_zero( void )
{
c = (Rational*)NULL;
N = 0;
}
// ----------------------------------------------------------------------------
// Initialize shallow from another linear form
// ----------------------------------------------------------------------------
inline void linearForm::copy_shallow( linearForm &l )
{
c = l.c;
N = l.N;
}
// ----------------------------------------------------------------------------
// Zero constructor
// ----------------------------------------------------------------------------
inline linearForm::linearForm( )
{
copy_zero( );
}
// ------------------------------------------
// inline functions for class newtonPolygon
// ------------------------------------------
// ----------------------------------------------------------------------------
// Initialize with zero
// ----------------------------------------------------------------------------
inline void newtonPolygon::copy_zero( void )
{
l = (linearForm*)NULL;
N = 0;
}
// ----------------------------------------------------------------------------
// Initialize shallow from another Newton polygon
// ----------------------------------------------------------------------------
inline void newtonPolygon::copy_shallow( newtonPolygon &np )
{
l = np.l;
N = np.N;
}
// ----------------------------------------------------------------------------
// Zero constructor
// ----------------------------------------------------------------------------
inline newtonPolygon::newtonPolygon( )
{
copy_zero( );
}
#endif /* NPOLYGON_H */
// ----------------------------------------------------------------------------
// npolygon.h
// end of file
// ----------------------------------------------------------------------------
|