My Project
Loading...
Searching...
No Matches
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{
24public:
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
43protected:
45
46 ideal gls;
49
50 int totDeg;
51
52private:
53 /* disables the copy constructor */
55};
56//<-
57
58//-> class uResultant
59/**
60 * Base class for solving 0-dim poly systems using u-resultant
61 */
63{
64public:
66
67 uResultant( const ideal _gls, const resMatType _rmt= sparseResMat, BOOLEAN extIdeal= true );
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
80private:
81 /* deactivated copy constructor */
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{
107
108mprState mprIdealCheck( const ideal theIdeal,
109 const char * name,
111 BOOLEAN rmatrix= false );
112
113ideal loNewtonPolytope( const ideal id );
114
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: ***
int BOOLEAN
Definition: auxiliary.h:87
int p
Definition: cfModGcd.cc:4078
Base class for sparse and dense u-Resultant computation.
Definition: mpr_base.h:23
ideal gls
Definition: mpr_base.h:46
virtual number getSubDet()
Definition: mpr_base.h:37
virtual ideal getSubMatrix()
Definition: mpr_base.h:32
virtual poly getUDet(const number *)
Definition: mpr_base.h:34
ring sourceRing
Definition: mpr_base.h:48
virtual ideal getMatrix()
Definition: mpr_base.h:31
resMatrixBase(const resMatrixBase &)
virtual number getDetAt(const number *)
Definition: mpr_base.h:36
int linPolyS
Definition: mpr_base.h:47
virtual long getDetDeg()
Definition: mpr_base.h:39
virtual IStateType initState() const
Definition: mpr_base.h:41
IStateType istate
Definition: mpr_base.h:44
virtual ~resMatrixBase()
Definition: mpr_base.h:29
complex root finder for univariate polynomials based on laguers algorithm
Definition: mpr_numeric.h:66
Base class for solving 0-dim poly systems using u-resultant.
Definition: mpr_base.h:63
poly linearPoly(const resMatType rmt)
Definition: mpr_base.cc:2743
resMatType rmt
Definition: mpr_base.h:91
rootContainer ** specializeInU(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition: mpr_base.cc:3060
resMatrixBase * resMat
Definition: mpr_base.h:92
ideal extendIdeal(const ideal gls, poly linPoly, const resMatType rmt)
Definition: mpr_base.cc:2715
rootContainer ** interpolateDenseSP(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition: mpr_base.cc:2922
uResultant(const uResultant &)
@ denseResMat
Definition: mpr_base.h:65
@ sparseResMat
Definition: mpr_base.h:65
resMatrixBase * accessResMat()
Definition: mpr_base.h:78
ideal gls
Definition: mpr_base.h:88
poly interpolateDense(const number subDetVal=NULL)
Definition: mpr_base.cc:2770
int nextPrime(const int p)
Definition: mpr_base.cc:3173
#define EXTERN_VAR
Definition: globaldefs.h:6
mprState
Definition: mpr_base.h:97
@ mprNotHomog
Definition: mpr_base.h:104
@ mprInfNumOfVars
Definition: mpr_base.h:101
@ mprHasOne
Definition: mpr_base.h:100
@ mprNotReduced
Definition: mpr_base.h:102
@ mprWrongRType
Definition: mpr_base.h:99
@ mprNotZeroDim
Definition: mpr_base.h:103
@ mprOk
Definition: mpr_base.h:98
@ mprUnSupField
Definition: mpr_base.h:105
EXTERN_VAR size_t gmp_output_digits
Definition: mpr_base.h:115
uResultant::resMatType determineMType(int imtype)
mprState mprIdealCheck(const ideal theIdeal, const char *name, uResultant::resMatType mtype, BOOLEAN rmatrix=false)
ideal loNewtonPolytope(const ideal id)
Definition: mpr_base.cc:3191
#define NULL
Definition: omList.c:12
int name
New type name for int.
Definition: templateForC.h:21