My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
kernel
numeric
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
12
#include "
kernel/numeric/mpr_numeric.h
"
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
*/
22
class
resMatrixBase
23
{
24
public
:
25
/* state of the resultant */
26
enum
IStateType
{
none
,
ready
,
notInit
,
fatalError
,
sparseError
};
27
28
resMatrixBase
() :
istate
(
notInit
),
totDeg
(0) {}
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
:
44
IStateType
istate
;
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
*/
62
class
uResultant
63
{
64
public
:
65
enum
resMatType
{
none
,
sparseResMat
,
denseResMat
};
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
78
resMatrixBase
*
accessResMat
() {
return
resMat
; }
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
//<-
95
uResultant::resMatType
determineMType
(
int
imtype );
96
enum
mprState
97
{
98
mprOk
,
99
mprWrongRType
,
100
mprHasOne
,
101
mprInfNumOfVars
,
102
mprNotReduced
,
103
mprNotZeroDim
,
104
mprNotHomog
,
105
mprUnSupField
106
};
107
108
mprState
mprIdealCheck
(
const
ideal theIdeal,
109
const
char
*
name
,
110
uResultant::resMatType
mtype,
111
BOOLEAN
rmatrix=
false
);
112
113
ideal
loNewtonPolytope
(
const
ideal
id
);
114
115
EXTERN_VAR
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: ***
BOOLEAN
int BOOLEAN
Definition
auxiliary.h:88
p
int p
Definition
cfModGcd.cc:4086
resMatrixBase
Base class for sparse and dense u-Resultant computation.
Definition
mpr_base.h:23
resMatrixBase::resMatrixBase
resMatrixBase()
Definition
mpr_base.h:28
resMatrixBase::gls
ideal gls
Definition
mpr_base.h:46
resMatrixBase::getSubDet
virtual number getSubDet()
Definition
mpr_base.h:37
resMatrixBase::getSubMatrix
virtual ideal getSubMatrix()
Definition
mpr_base.h:32
resMatrixBase::getUDet
virtual poly getUDet(const number *)
Definition
mpr_base.h:34
resMatrixBase::sourceRing
ring sourceRing
Definition
mpr_base.h:48
resMatrixBase::totDeg
int totDeg
Definition
mpr_base.h:50
resMatrixBase::getMatrix
virtual ideal getMatrix()
Definition
mpr_base.h:31
resMatrixBase::resMatrixBase
resMatrixBase(const resMatrixBase &)
resMatrixBase::getDetAt
virtual number getDetAt(const number *)
Definition
mpr_base.h:36
resMatrixBase::linPolyS
int linPolyS
Definition
mpr_base.h:47
resMatrixBase::getDetDeg
virtual long getDetDeg()
Definition
mpr_base.h:39
resMatrixBase::IStateType
IStateType
Definition
mpr_base.h:26
resMatrixBase::sparseError
@ sparseError
Definition
mpr_base.h:26
resMatrixBase::none
@ none
Definition
mpr_base.h:26
resMatrixBase::notInit
@ notInit
Definition
mpr_base.h:26
resMatrixBase::ready
@ ready
Definition
mpr_base.h:26
resMatrixBase::fatalError
@ fatalError
Definition
mpr_base.h:26
resMatrixBase::initState
virtual IStateType initState() const
Definition
mpr_base.h:41
resMatrixBase::istate
IStateType istate
Definition
mpr_base.h:44
resMatrixBase::~resMatrixBase
virtual ~resMatrixBase()
Definition
mpr_base.h:29
rootContainer
complex root finder for univariate polynomials based on laguers algorithm
Definition
mpr_numeric.h:66
uResultant::linearPoly
poly linearPoly(const resMatType rmt)
Definition
mpr_base.cc:2743
uResultant::rmt
resMatType rmt
Definition
mpr_base.h:91
uResultant::specializeInU
rootContainer ** specializeInU(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition
mpr_base.cc:3060
uResultant::uResultant
uResultant(const ideal _gls, const resMatType _rmt=sparseResMat, BOOLEAN extIdeal=true)
Definition
mpr_base.cc:2685
uResultant::resMat
resMatrixBase * resMat
Definition
mpr_base.h:92
uResultant::extendIdeal
ideal extendIdeal(const ideal gls, poly linPoly, const resMatType rmt)
Definition
mpr_base.cc:2715
uResultant::interpolateDenseSP
rootContainer ** interpolateDenseSP(BOOLEAN matchUp=false, const number subDetVal=NULL)
Definition
mpr_base.cc:2922
uResultant::uResultant
uResultant(const uResultant &)
uResultant::~uResultant
~uResultant()
Definition
mpr_base.cc:2710
uResultant::n
int n
Definition
mpr_base.h:89
uResultant::resMatType
resMatType
Definition
mpr_base.h:65
uResultant::denseResMat
@ denseResMat
Definition
mpr_base.h:65
uResultant::none
@ none
Definition
mpr_base.h:65
uResultant::sparseResMat
@ sparseResMat
Definition
mpr_base.h:65
uResultant::accessResMat
resMatrixBase * accessResMat()
Definition
mpr_base.h:78
uResultant::gls
ideal gls
Definition
mpr_base.h:88
uResultant::interpolateDense
poly interpolateDense(const number subDetVal=NULL)
Definition
mpr_base.cc:2770
uResultant::nextPrime
int nextPrime(const int p)
Definition
mpr_base.cc:3173
EXTERN_VAR
#define EXTERN_VAR
Definition
globaldefs.h:6
mprState
mprState
Definition
mpr_base.h:97
mprNotHomog
@ mprNotHomog
Definition
mpr_base.h:104
mprInfNumOfVars
@ mprInfNumOfVars
Definition
mpr_base.h:101
mprHasOne
@ mprHasOne
Definition
mpr_base.h:100
mprNotReduced
@ mprNotReduced
Definition
mpr_base.h:102
mprWrongRType
@ mprWrongRType
Definition
mpr_base.h:99
mprNotZeroDim
@ mprNotZeroDim
Definition
mpr_base.h:103
mprOk
@ mprOk
Definition
mpr_base.h:98
mprUnSupField
@ mprUnSupField
Definition
mpr_base.h:105
gmp_output_digits
EXTERN_VAR size_t gmp_output_digits
Definition
mpr_base.h:115
determineMType
uResultant::resMatType determineMType(int imtype)
mprIdealCheck
mprState mprIdealCheck(const ideal theIdeal, const char *name, uResultant::resMatType mtype, BOOLEAN rmatrix=false)
loNewtonPolytope
ideal loNewtonPolytope(const ideal id)
Definition
mpr_base.cc:3191
mpr_numeric.h
NULL
#define NULL
Definition
omList.c:12
name
int name
New type name for int.
Definition
templateForC.h:21
Generated on
for My Project by
doxygen 1.17.0
for
Singular