All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Data Structures | Macros | Enumerations | Functions | Variables
mpr_base.h File Reference
#include <kernel/numeric/mpr_numeric.h>

Go to the source code of this file.

Data Structures

class  resMatrixBase
 Base class for sparse and dense u-Resultant computation. More...
 
class  uResultant
 Base class for solving 0-dim poly systems using u-resultant. More...
 

Macros

#define SNONE   -1
 
#define SFREE   -2
 

Enumerations

enum  mprState {
  mprOk, mprWrongRType, mprHasOne, mprInfNumOfVars,
  mprNotReduced, mprNotZeroDim, mprNotHomog, mprUnSupField
}
 

Functions

uResultant::resMatType determineMType (int imtype)
 
mprState mprIdealCheck (const ideal theIdeal, const char *name, uResultant::resMatType mtype, BOOLEAN rmatrix=false)
 
ideal loNewtonPolytope (const ideal id)
 

Variables

size_t gmp_output_digits
 

Macro Definition Documentation

#define SFREE   -2

Definition at line 15 of file mpr_base.h.

#define SNONE   -1

Definition at line 14 of file mpr_base.h.

Enumeration Type Documentation

enum mprState
Enumerator
mprOk 
mprWrongRType 
mprHasOne 
mprInfNumOfVars 
mprNotReduced 
mprNotZeroDim 
mprNotHomog 
mprUnSupField 

Definition at line 96 of file mpr_base.h.

Function Documentation

uResultant::resMatType determineMType ( int  imtype)

Definition at line 134 of file mpr_inout.cc.

135 {
136  switch ( imtype )
137  {
138  case MPR_DENSE:
140  case 0:
141  case MPR_SPARSE:
143  default:
144  return uResultant::none;
145  }
146 }
#define MPR_DENSE
Definition: mpr_inout.h:15
#define MPR_SPARSE
Definition: mpr_inout.h:16
ideal loNewtonPolytope ( const ideal  id)

Definition at line 3190 of file mpr_base.cc.

3191 {
3192  simplex * LP;
3193  int i;
3194  int /*n,*/totverts,idelem;
3195  ideal idr;
3196 
3197  // n= (currRing->N);
3198  idelem= IDELEMS(id); // should be n+1
3199 
3200  totverts = 0;
3201  for( i=0; i < idelem; i++) totverts += pLength( (id->m)[i] );
3202 
3203  LP = new simplex( idelem+totverts*2+5, totverts+5 ); // rows, cols
3204 
3205  // evaluate convex hull for supports of id
3206  convexHull chnp( LP );
3207  idr = chnp.newtonPolytopesI( id );
3208 
3209  delete LP;
3210 
3211  return idr;
3212 }
Linear Programming / Linear Optimization using Simplex - Algorithm.
Definition: mpr_numeric.h:194
static int pLength(poly a)
Definition: p_polys.h:189
int i
Definition: cfEzgcd.cc:123
#define IDELEMS(i)
Definition: simpleideals.h:24
mprState mprIdealCheck ( const ideal  theIdeal,
const char *  name,
uResultant::resMatType  mtype,
BOOLEAN  rmatrix = false 
)

Definition at line 93 of file mpr_inout.cc.

97 {
98  mprState state = mprOk;
99  // int power;
100  int k;
101 
102  int numOfVars= mtype == uResultant::denseResMat?(currRing->N)-1:(currRing->N);
103  if ( rmatrix ) numOfVars++;
104 
105  if ( mtype == uResultant::none )
106  state= mprWrongRType;
107 
108  if ( IDELEMS(theIdeal) != numOfVars )
109  state= mprInfNumOfVars;
110 
111  for ( k= IDELEMS(theIdeal) - 1; (state == mprOk) && (k >= 0); k-- )
112  {
113  poly p = (theIdeal->m)[k];
114  if ( pIsConstant(p) ) state= mprHasOne;
115  else
116  if ( (mtype == uResultant::denseResMat) && !p_IsHomogeneous(p, currRing) )
117  state=mprNotHomog;
118  }
119 
120  if ( !(rField_is_R(currRing)||
124  (rmatrix && rField_is_Q_a(currRing))) )
125  state= mprUnSupField;
126 
127  if ( state != mprOk ) mprPrintError( state, "" /* name */ );
128 
129  return state;
130 }
return P p
Definition: myNF.cc:203
BOOLEAN p_IsHomogeneous(poly p, const ring r)
Definition: p_polys.cc:3203
static BOOLEAN rField_is_R(const ring r)
Definition: ring.h:507
static BOOLEAN rField_is_Q_a(const ring r)
Definition: ring.h:528
int k
Definition: cfEzgcd.cc:93
Definition: mpr_base.h:98
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
#define pIsConstant(p)
like above, except that Comp might be != 0
Definition: polys.h:221
static BOOLEAN rField_is_Q(const ring r)
Definition: ring.h:501
#define IDELEMS(i)
Definition: simpleideals.h:24
static BOOLEAN rField_is_long_C(const ring r)
Definition: ring.h:534
static BOOLEAN rField_is_long_R(const ring r)
Definition: ring.h:531
mprState
Definition: mpr_base.h:96
polyrec * poly
Definition: hilb.h:10

Variable Documentation

size_t gmp_output_digits

Definition at line 44 of file mpr_complex.cc.