My Project  debian-1:4.1.1-p2+ds-4build2
mpr_base.h
Go to the documentation of this file.
1 #ifndef MPR_BASE_H
2 #define MPR_BASE_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 
7 /*
8 * ABSTRACT - multipolynomial resultants - resultant matrices
9 * ( sparse, dense, u-resultant solver )
10 */
11 
13 
14 #define SNONE -1
15 #define SFREE -2
16 
17 //%s
18 //-> class resMatrixBase
19 /**
20  * Base class for sparse and dense u-Resultant computation
21  */
23 {
24 public:
25  /* state of the resultant */
27 
29  virtual ~resMatrixBase() {}
30 
31  virtual ideal getMatrix() { return NULL; }
32  virtual ideal getSubMatrix() { return NULL; }
33 
34  virtual poly getUDet( const number* /*evpoint*/ ) { return NULL; }
35 
36  virtual number getDetAt( const number* /*evpoint*/ ) { return NULL; }
37  virtual number getSubDet() { return NULL; }
38 
39  virtual long getDetDeg() { return totDeg; }
40 
41  virtual IStateType initState() const { return istate; }
42 
43 protected:
45 
46  ideal gls;
47  int linPolyS;
48  ring sourceRing;
49 
50  int totDeg;
51 
52 private:
53  /* disables the copy constructor */
54  resMatrixBase( const resMatrixBase & );
55 };
56 //<-
57 
58 //-> class uResultant
59 /**
60  * Base class for solving 0-dim poly systems using u-resultant
61  */
63 {
64 public:
66 
67  uResultant( const ideal _gls, const resMatType _rmt= sparseResMat, BOOLEAN extIdeal= true );
68  ~uResultant();
69 
70  poly interpolateDense( const number subDetVal= NULL );
71 
72  /* Interpolates n+1 determinat polys for coeff specializations. */
73  rootContainer ** interpolateDenseSP( BOOLEAN matchUp= false, const number subDetVal= NULL );
74 
75  /* Uses Bareiss */
76  rootContainer ** specializeInU( BOOLEAN matchUp= false, const number subDetVal= NULL );
77 
79 
80 private:
81  /* deactivated copy constructor */
82  uResultant( const uResultant & );
83 
84  ideal extendIdeal( const ideal gls, poly linPoly, const resMatType rmt );
85  poly linearPoly( const resMatType rmt );
86  int nextPrime( const int p );
87 
88  ideal gls;
89  int n;
90 
91  resMatType rmt; // sparse or dense resultant matrix ?
92  resMatrixBase *resMat; // pointer to base resultant matrix class
93 };
94 //<-
97 {
106 };
107 
108 mprState mprIdealCheck( const ideal theIdeal,
109  const char * name,
111  BOOLEAN rmatrix= false );
112 
113 ideal loNewtonPolytope( const ideal id );
114 
115 extern size_t gmp_output_digits;
116 //%e
117 #endif /*MPR_BASE_H*/
118 
119 // local Variables: ***
120 // folded-file: t ***
121 // compile-command-2: "make install" ***
122 // compile-command: "make installg" ***
123 // End: ***
mprUnSupField
@ mprUnSupField
Definition: mpr_base.h:105
resMatrixBase::notInit
@ notInit
Definition: mpr_base.h:26
resMatrixBase::resMatrixBase
resMatrixBase()
Definition: mpr_base.h:28
resMatrixBase::none
@ none
Definition: mpr_base.h:26
uResultant::denseResMat
@ denseResMat
Definition: mpr_base.h:65
mprHasOne
@ mprHasOne
Definition: mpr_base.h:100
gmp_output_digits
size_t gmp_output_digits
Definition: mpr_complex.cc:43
resMatrixBase::initState
virtual IStateType initState() const
Definition: mpr_base.h:41
mprOk
@ mprOk
Definition: mpr_base.h:98
resMatrixBase::IStateType
IStateType
Definition: mpr_base.h:26
mprNotReduced
@ mprNotReduced
Definition: mpr_base.h:102
resMatrixBase::sparseError
@ sparseError
Definition: mpr_base.h:26
uResultant::interpolateDense
poly interpolateDense(const number subDetVal=NULL)
Definition: mpr_base.cc:2771
uResultant::resMatType
resMatType
Definition: mpr_base.h:65
resMatrixBase::getDetAt
virtual number getDetAt(const number *)
Definition: mpr_base.h:36
resMatrixBase::getSubDet
virtual number getSubDet()
Definition: mpr_base.h:37
uResultant::interpolateDenseSP
rootContainer ** interpolateDenseSP(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition: mpr_base.cc:2923
resMatrixBase::gls
ideal gls
Definition: mpr_base.h:46
mprIdealCheck
mprState mprIdealCheck(const ideal theIdeal, const char *name, uResultant::resMatType mtype, BOOLEAN rmatrix=false)
uResultant::extendIdeal
ideal extendIdeal(const ideal gls, poly linPoly, const resMatType rmt)
Definition: mpr_base.cc:2716
resMatrixBase::sourceRing
ring sourceRing
Definition: mpr_base.h:48
resMatrixBase::~resMatrixBase
virtual ~resMatrixBase()
Definition: mpr_base.h:29
loNewtonPolytope
ideal loNewtonPolytope(const ideal id)
Definition: mpr_base.cc:3192
uResultant::none
@ none
Definition: mpr_base.h:65
BOOLEAN
int BOOLEAN
Definition: auxiliary.h:85
resMatrixBase::totDeg
int totDeg
Definition: mpr_base.h:50
uResultant::gls
ideal gls
Definition: mpr_base.h:88
uResultant::uResultant
uResultant(const ideal _gls, const resMatType _rmt=sparseResMat, BOOLEAN extIdeal=true)
Definition: mpr_base.cc:2686
resMatrixBase::istate
IStateType istate
Definition: mpr_base.h:44
mprNotHomog
@ mprNotHomog
Definition: mpr_base.h:104
uResultant::accessResMat
resMatrixBase * accessResMat()
Definition: mpr_base.h:78
mprNotZeroDim
@ mprNotZeroDim
Definition: mpr_base.h:103
mprState
mprState
Definition: mpr_base.h:96
uResultant
Base class for solving 0-dim poly systems using u-resultant.
Definition: mpr_base.h:62
uResultant::resMat
resMatrixBase * resMat
Definition: mpr_base.h:92
determineMType
uResultant::resMatType determineMType(int imtype)
resMatrixBase::getSubMatrix
virtual ideal getSubMatrix()
Definition: mpr_base.h:32
resMatrixBase::linPolyS
int linPolyS
Definition: mpr_base.h:47
mpr_numeric.h
uResultant::~uResultant
~uResultant()
Definition: mpr_base.cc:2711
uResultant::sparseResMat
@ sparseResMat
Definition: mpr_base.h:65
resMatrixBase::ready
@ ready
Definition: mpr_base.h:26
resMatrixBase::fatalError
@ fatalError
Definition: mpr_base.h:26
name
char name(const Variable &v)
Definition: factory.h:180
uResultant::linearPoly
poly linearPoly(const resMatType rmt)
Definition: mpr_base.cc:2744
mprInfNumOfVars
@ mprInfNumOfVars
Definition: mpr_base.h:101
NULL
#define NULL
Definition: omList.c:10
resMatrixBase::getMatrix
virtual ideal getMatrix()
Definition: mpr_base.h:31
resMatrixBase::getUDet
virtual poly getUDet(const number *)
Definition: mpr_base.h:34
resMatrixBase::getDetDeg
virtual long getDetDeg()
Definition: mpr_base.h:39
uResultant::rmt
resMatType rmt
Definition: mpr_base.h:91
p
int p
Definition: cfModGcd.cc:4019
mprWrongRType
@ mprWrongRType
Definition: mpr_base.h:99
uResultant::n
int n
Definition: mpr_base.h:89
rootContainer
complex root finder for univariate polynomials based on laguers algorithm
Definition: mpr_numeric.h:65
uResultant::nextPrime
int nextPrime(const int p)
Definition: mpr_base.cc:3174
uResultant::specializeInU
rootContainer ** specializeInU(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition: mpr_base.cc:3061
resMatrixBase
Base class for sparse and dense u-Resultant computation.
Definition: mpr_base.h:22