![]() |
My Project
|
#include "misc/auxiliary.h"
#include "coeffs/coeffs.h"
#include "misc/intvec.h"
#include "misc/int64vec.h"
#include "coeffs/bigintmat.h"
#include "polys/monomials/monomials.h"
Go to the source code of this file.
Data Structures | |
struct | sro_dp |
struct | sro_wp |
struct | sro_am |
struct | sro_wp64 |
struct | sro_cp |
struct | sro_syzcomp |
struct | sro_syz |
struct | sro_ISTemp |
struct | sro_IS |
struct | sro_ord |
struct | ring |
union | sro_ord.data |
Macros | |
#define | ringorder_rp ringorder_ip |
#define | ringorder_rs ringorder_is |
#define | rField_is_Ring(R) |
#define | rTest(r) |
Typedefs | |
typedef idrec * | idhdl |
typedef struct p_Procs_s | p_Procs_s |
typedef kBucket * | kBucket_pt |
typedef long(* | pLDegProc) (poly p, int *length, ring r) |
typedef long(* | pFDegProc) (poly p, ring r) |
typedef void(* | p_SetmProc) (poly p, const ring r) |
typedef poly(* | pShallowCopyDeleteProc) (poly s_p, ring source_r, ring dest_r, omBin dest_bin) |
returns a poly from dest_r which is a ShallowCopy of s_p from source_r assumes that source_r->N == dest_r->N and that orderings are the same | |
typedef skStrategy * | kStrategy |
typedef poly(* | NF_Proc) (ideal, ideal, poly, int, int, const ring _currRing) |
typedef ideal(* | BBA_Proc) (const ideal, const ideal, const intvec *, const bigintmat *, kStrategy strat, const ring) |
Enumerations | |
enum | ro_typ { ro_dp , ro_wp , ro_am , ro_wp64 , ro_wp_neg , ro_cp , ro_syzcomp , ro_syz , ro_isTemp , ro_is , ro_none } |
enum | rRingOrder_t { ringorder_no = 0 , ringorder_a , ringorder_a64 , ringorder_c , ringorder_C , ringorder_M , ringorder_S , ringorder_s , ringorder_lp , ringorder_dp , ringorder_ip , ringorder_Dp , ringorder_wp , ringorder_Wp , ringorder_Ip , ringorder_ls , ringorder_ds , ringorder_Ds , ringorder_ws , ringorder_Ws , ringorder_am , ringorder_L , ringorder_aa , ringorder_is , ringorder_IS , ringorder_unspec } |
order stuff More... | |
enum | rOrderType_t { rOrderType_General = 0 , rOrderType_CompExp , rOrderType_ExpComp , rOrderType_Exp , rOrderType_Syz , rOrderType_Schreyer , rOrderType_Syz2dpc , rOrderType_ExpNoComp } |
Functions | |
ring | rDefault (int ch, int N, char **n) |
ring | rDefault (const coeffs cf, int N, char **n, const rRingOrder_t o=ringorder_lp) |
ring | rDefault (int ch, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl=NULL) |
ring | rDefault (const coeffs cf, int N, char **n, int ord_size, rRingOrder_t *ord, int *block0, int *block1, int **wvhdl=NULL, unsigned long bitmask=0) |
unsigned long | rGetExpSize (unsigned long bitmask, int &bits, int N) |
int | r_IsRingVar (const char *n, char **names, int N) |
void | rWrite (ring r, BOOLEAN details=FALSE) |
ring | rCopy (ring r) |
ring | rCopy0 (const ring r, BOOLEAN copy_qideal=TRUE, BOOLEAN copy_ordering=TRUE) |
ring | rCopy0AndAddA (ring r, int64vec *wv64, BOOLEAN copy_qideal=TRUE, BOOLEAN copy_ordering=TRUE) |
ring | rOpposite (ring r) |
ring | rEnvelope (ring r) |
static BOOLEAN | rIsPluralRing (const ring r) |
we must always have this test! | |
static BOOLEAN | rIsLPRing (const ring r) |
static BOOLEAN | rIsNCRing (const ring r) |
static BOOLEAN | rIsRatGRing (const ring r) |
void | rChangeSComps (int *currComponents, long *currShiftedComponents, int length, ring r) |
void | rGetSComps (int **currComponents, long **currShiftedComponents, int *length, ring r) |
const char * | rSimpleOrdStr (int ord) |
rRingOrder_t | rOrderName (char *ordername) |
char * | rOrdStr (ring r) |
char * | rVarStr (ring r) |
char * | rCharStr (ring r) |
TODO: make it a virtual method of coeffs, together with: Decompose & Compose, rParameter & rPar. | |
char * | rString (ring r) |
int | rChar (ring r) |
char * | rParStr (ring r) |
int | rSum (ring r1, ring r2, ring &sum) |
int | rSumInternal (ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp) |
returns -1 for not compatible, 1 for compatible (and sum) dp_dp:0: block ordering, 1: dp,dp, 2: aa(...),dp vartest: check for name conflicts | |
BOOLEAN | rEqual (ring r1, ring r2, BOOLEAN qr=TRUE) |
returns TRUE, if r1 equals r2 FALSE, otherwise Equality is determined componentwise, if qr == 1, then qrideal equality is tested, as well | |
BOOLEAN | rSamePolyRep (ring r1, ring r2) |
returns TRUE, if r1 and r2 represents the monomials in the same way FALSE, otherwise this is an analogue to rEqual but not so strict | |
void | rUnComplete (ring r) |
BOOLEAN | rRing_has_CompLastBlock (const ring r) |
BOOLEAN | rRing_ord_pure_dp (const ring r) |
BOOLEAN | rRing_ord_pure_Dp (const ring r) |
BOOLEAN | rRing_ord_pure_lp (const ring r) |
static BOOLEAN | rField_is_Ring_2toM (const ring r) |
static BOOLEAN | rField_is_Ring_PtoM (const ring r) |
static BOOLEAN | rField_is_Domain (const ring r) |
static BOOLEAN | rField_has_Units (const ring r) |
static BOOLEAN | rField_is_Zp (const ring r) |
static BOOLEAN | rField_is_Zp (const ring r, int p) |
static BOOLEAN | rField_is_Q (const ring r) |
static BOOLEAN | rField_is_Z (const ring r) |
static BOOLEAN | rField_is_Zn (const ring r) |
static BOOLEAN | rField_is_numeric (const ring r) |
static BOOLEAN | rField_is_R (const ring r) |
static BOOLEAN | rField_is_GF (const ring r) |
static BOOLEAN | rField_is_GF (const ring r, int q) |
static BOOLEAN | rField_is_Zp_a (const ring r) |
static BOOLEAN | rField_is_Zp_a (const ring r, int p) |
static BOOLEAN | rField_is_Q_a (const ring r) |
static BOOLEAN | rField_is_long_R (const ring r) |
static BOOLEAN | rField_is_long_C (const ring r) |
static BOOLEAN | rField_has_simple_inverse (const ring r) |
static BOOLEAN | rField_has_simple_Alloc (const ring r) |
Z/p, GF(p,n), R: nCopy, nNew, nDelete are dummies. | |
static n_coeffType | rFieldType (const ring r) |
the type of the coefficient filed of r (n_Zp, n_Q, etc) | |
BOOLEAN | rComplete (ring r, int force=0) |
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffset), unless they already exist with force == 1, new fields are always created (overwritten), even if they exist | |
void | p_SetGlobals (const ring r, BOOLEAN complete=TRUE) |
set all properties of a new ring - also called by rComplete | |
static int | rBlocks (const ring r) |
static char * | rRingVar (short i, const ring r) |
static BOOLEAN | rShortOut (const ring r) |
static BOOLEAN | rCanShortOut (const ring r) |
static short | rVar (const ring r) |
#define rVar(r) (r->N) | |
static int | rPar (const ring r) |
(r->cf->P) | |
static char const ** | rParameter (const ring r) |
(r->cf->parameter) | |
static number | n_Param (const short iParameter, const ring r) |
return the specified parameter as a (new!) number in the given polynomial ring, or NULL if invalid parameters (as variables) begin with 1! | |
int | n_IsParam (number m, const ring r) |
if m == var(i)/1 => return i, | |
static int | rInternalChar (const ring r) |
static BOOLEAN | rMinpolyIsNULL (const ring r) |
Tests whether '(r->cf->minpoly) == NULL'. | |
static BOOLEAN | rIsSyzIndexRing (const ring r) |
static int | rGetCurrSyzLimit (const ring r) |
void | rSetSyzComp (int k, const ring r) |
ring | rAssure_HasComp (const ring r) |
ring | rAssure_SyzOrder (const ring r, BOOLEAN complete) |
ring | rAssure_SyzComp (const ring r, BOOLEAN complete=TRUE) |
ring | rAssure_InducedSchreyerOrdering (const ring r, BOOLEAN complete=TRUE, int sgn=1) |
ring | rAssure_dp_S (const ring r) |
ring | rAssure_dp_C (const ring r) |
ring | rAssure_Dp_C (const ring r) |
ring | rAssure_Wp_C (const ring r, intvec *w) |
ring | rAssure_C_dp (const ring r) |
ring | rAssure_c_dp (const ring r) |
ring | rAssure_CompLastBlock (const ring r, BOOLEAN complete=TRUE) |
makes sure that c/C ordering is last ordering | |
ring | rAssure_SyzComp_CompLastBlock (const ring r) |
makes sure that c/C ordering is last ordering and SyzIndex is first | |
ring | rAssure_TDeg (const ring r, int &pos) |
int | rGetMaxSyzComp (int i, const ring r) |
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit | |
BOOLEAN | rHasSimpleOrder (const ring r) |
BOOLEAN | rHas_c_Ordering (const ring r) |
BOOLEAN | rHasBlockOrder (const ring r) |
BOOLEAN | rHasSimpleLexOrder (const ring r) |
returns TRUE, if simple lp or ls ordering | |
static BOOLEAN | rHasGlobalOrdering (const ring r) |
static BOOLEAN | rHasLocalOrMixedOrdering (const ring r) |
static BOOLEAN | rHasMixedOrdering (const ring r) |
BOOLEAN | rOrd_is_Totaldegree_Ordering (const ring r) |
BOOLEAN | rOrd_is_dp (const ring r) |
BOOLEAN | rOrd_is_ds (const ring r) |
BOOLEAN | rOrd_is_Ds (const ring r) |
BOOLEAN | rOrd_SetCompRequiresSetm (const ring r) |
return TRUE if p_SetComp requires p_Setm | |
rOrderType_t | rGetOrderType (ring r) |
static BOOLEAN | rOrd_is_Comp_dp (const ring r) |
BOOLEAN | rDBTest (ring r, const char *fn, const int l) |
ring | rModifyRing (ring r, BOOLEAN omit_degree, BOOLEAN omit_comp, unsigned long exp_limit) |
ring | rModifyRing_Wp (ring r, int *weights) |
construct Wp, C ring | |
void | rKillModifiedRing (ring r) |
void | rKillModified_Wp_Ring (ring r) |
ring | rModifyRing_Simple (ring r, BOOLEAN omit_degree, BOOLEAN omit_comp, unsigned long exp_limit, BOOLEAN &simple) |
void | rDebugPrint (const ring r) |
void | p_DebugPrint (poly p, const ring r) |
int64 * | rGetWeightVec (const ring r) |
void | rSetWeightVec (ring r, int64 *wv) |
poly | rGetVar (const int varIndex, const ring r) |
BOOLEAN | rSetISReference (const ring r, const ideal F, const int i=0, const int p=0) |
Changes r by setting induced ordering parameters: limit and reference leading terms F belong to r, we will DO a copy! We will use it AS IS! returns true is everything was alright! | |
int | rGetISPos (const int p, const ring r) |
return the position of the p^th IS block order block in r->typ[]... | |
BOOLEAN | rCheckIV (const intvec *iv) |
int | rTypeOfMatrixOrder (const intvec *order) |
void | rDelete (ring r) |
unconditionally deletes fields in r | |
ring | rPlusVar (const ring r, char *v, int left) |
K[x],"y" -> K[x,y] resp. K[y,x]. | |
ring | rMinusVar (const ring r, char *v) |
undo rPlusVar | |
static ring | rIncRefCnt (ring r) |
static void | rDecRefCnt (ring r) |
Variables | |
EXTERN_VAR omBin | sip_sring_bin |
struct sro_wp |
struct sro_am |
struct sro_wp64 |
struct sro_syzcomp |
struct sro_syz |
struct sro_ISTemp |
struct sro_IS |
struct sro_ord |
Data Fields | ||
---|---|---|
union sro_ord.data | data | |
ro_typ | ord_typ | |
int | order_index |
union sro_ord.data |
#define rField_is_Ring | ( | R | ) |
#define ringorder_rp ringorder_ip |
#define ringorder_rs ringorder_is |
#define rTest | ( | r | ) |
typedef kBucket* kBucket_pt |
typedef skStrategy* kStrategy |
typedef poly(* NF_Proc) (ideal, ideal, poly, int, int, const ring _currRing) |
typedef poly(* pShallowCopyDeleteProc) (poly s_p, ring source_r, ring dest_r, omBin dest_bin) |
enum ro_typ |
Enumerator | |
---|---|
ro_dp | |
ro_wp | |
ro_am | |
ro_wp64 | |
ro_wp_neg | |
ro_cp | |
ro_syzcomp | |
ro_syz | |
ro_isTemp | |
ro_is | |
ro_none |
enum rOrderType_t |
Definition at line 103 of file ring.h.
enum rRingOrder_t |
order stuff
Enumerator | |
---|---|
ringorder_no | |
ringorder_a | |
ringorder_a64 | for int64 weights |
ringorder_c | |
ringorder_C | |
ringorder_M | |
ringorder_S | S? |
ringorder_s | s? |
ringorder_lp | |
ringorder_dp | |
ringorder_ip | |
ringorder_Dp | |
ringorder_wp | |
ringorder_Wp | |
ringorder_Ip | |
ringorder_ls | degree, ip |
ringorder_ds | |
ringorder_Ds | |
ringorder_ws | |
ringorder_Ws | |
ringorder_am | |
ringorder_L | |
ringorder_aa | for idElimination, like a, except pFDeg, pWeigths ignore it |
ringorder_is | opposite of ls |
ringorder_IS | Induced (Schreyer) ordering. |
ringorder_unspec |
Definition at line 68 of file ring.h.
if m == var(i)/1 => return i,
if m == var(i)/1 => return i,
Definition at line 5921 of file ring.cc.
return the specified parameter as a (new!) number in the given polynomial ring, or NULL if invalid parameters (as variables) begin with 1!
Definition at line 658 of file ring.h.
void p_DebugPrint | ( | poly | p, |
const ring | r ) |
int r_IsRingVar | ( | const char * | n, |
char ** | names, | ||
int | N ) |
ring rAssure_C_dp | ( | const ring | r | ) |
Definition at line 5129 of file ring.cc.
ring rAssure_c_dp | ( | const ring | r | ) |
makes sure that c/C ordering is last ordering
Definition at line 4786 of file ring.cc.
ring rAssure_Dp_C | ( | const ring | r | ) |
ring rAssure_dp_C | ( | const ring | r | ) |
ring rAssure_dp_S | ( | const ring | r | ) |
ring rAssure_HasComp | ( | const ring | r | ) |
Definition at line 4717 of file ring.cc.
Definition at line 4989 of file ring.cc.
Definition at line 4527 of file ring.cc.
ring rAssure_SyzComp_CompLastBlock | ( | const ring | r | ) |
makes sure that c/C ordering is last ordering and SyzIndex is first
? rChangeCurrRing(new_r);
Definition at line 4841 of file ring.cc.
ring rAssure_TDeg | ( | const ring | r, |
int & | pos ) |
Definition at line 4619 of file ring.cc.
Definition at line 4942 of file ring.cc.
|
inlinestatic |
void rChangeSComps | ( | int * | currComponents, |
long * | currShiftedComponents, | ||
int | length, | ||
ring | r ) |
Definition at line 4497 of file ring.cc.
char * rCharStr | ( | ring | r | ) |
TODO: make it a virtual method of coeffs, together with: Decompose & Compose, rParameter & rPar.
Definition at line 652 of file ring.cc.
BOOLEAN rComplete | ( | ring | r, |
int | force = 0 ) |
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffset), unless they already exist with force == 1, new fields are always created (overwritten), even if they exist
Definition at line 3526 of file ring.cc.
ring rCopy | ( | ring | r | ) |
Definition at line 1426 of file ring.cc.
ring rCopy0AndAddA | ( | ring | r, |
int64vec * | wv64, | ||
BOOLEAN | copy_qideal = TRUE, | ||
BOOLEAN | copy_ordering = TRUE ) |
Definition at line 1569 of file ring.cc.
Definition at line 2097 of file ring.cc.
void rDebugPrint | ( | const ring | r | ) |
Definition at line 4214 of file ring.cc.
|
inlinestatic |
ring rDefault | ( | const coeffs | cf, |
int | N, | ||
char ** | n, | ||
const rRingOrder_t | o = ringorder_lp ) |
Definition at line 139 of file ring.cc.
ring rDefault | ( | const coeffs | cf, |
int | N, | ||
char ** | n, | ||
int | ord_size, | ||
rRingOrder_t * | ord, | ||
int * | block0, | ||
int * | block1, | ||
int ** | wvhdl = NULL, | ||
unsigned long | bitmask = 0 ) |
Definition at line 103 of file ring.cc.
ring rDefault | ( | int | ch, |
int | N, | ||
char ** | n ) |
Definition at line 156 of file ring.cc.
ring rDefault | ( | int | ch, |
int | N, | ||
char ** | n, | ||
int | ord_size, | ||
rRingOrder_t * | ord, | ||
int * | block0, | ||
int * | block1, | ||
int ** | wvhdl = NULL ) |
void rDelete | ( | ring | r | ) |
unconditionally deletes fields in r
Definition at line 454 of file ring.cc.
ring rEnvelope | ( | ring | r | ) |
returns TRUE, if r1 equals r2 FALSE, otherwise Equality is determined componentwise, if qr == 1, then qrideal equality is tested, as well
Definition at line 1751 of file ring.cc.
Z/p, GF(p,n), R: nCopy, nNew, nDelete are dummies.
Definition at line 558 of file ring.h.
Definition at line 554 of file ring.h.
Definition at line 496 of file ring.h.
Definition at line 493 of file ring.h.
Definition at line 521 of file ring.h.
Definition at line 485 of file ring.h.
Definition at line 488 of file ring.h.
|
inlinestatic |
|
inlinestatic |
unsigned long rGetExpSize | ( | unsigned long | bitmask, |
int & | bits, | ||
int | N ) |
Definition at line 2722 of file ring.cc.
return the position of the p^th IS block order block in r->typ[]...
return the position of the p^th IS block order block in r->typ[]...
Definition at line 5144 of file ring.cc.
int rGetMaxSyzComp | ( | int | i, |
const ring | r ) |
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit
Definition at line 5302 of file ring.cc.
rOrderType_t rGetOrderType | ( | ring | r | ) |
Definition at line 1845 of file ring.cc.
void rGetSComps | ( | int ** | currComponents, |
long ** | currShiftedComponents, | ||
int * | length, | ||
ring | r ) |
Definition at line 4506 of file ring.cc.
Definition at line 5911 of file ring.cc.
returns TRUE, if simple lp or ls ordering
Definition at line 1948 of file ring.cc.
|
inlinestatic |
|
inlinestatic |
void rKillModified_Wp_Ring | ( | ring | r | ) |
void rKillModifiedRing | ( | ring | r | ) |
ring rMinusVar | ( | const ring | r, |
char * | v ) |
< How many induced ordering block do we have?
Definition at line 2757 of file ring.cc.
ring rModifyRing_Simple | ( | ring | r, |
BOOLEAN | omit_degree, | ||
BOOLEAN | omit_comp, | ||
unsigned long | exp_limit, | ||
BOOLEAN & | simple ) |
Definition at line 3052 of file ring.cc.
ring rModifyRing_Wp | ( | ring | r, |
int * | weights ) |
construct Wp, C ring
Definition at line 3004 of file ring.cc.
ring rOpposite | ( | ring | r | ) |
Definition at line 5425 of file ring.cc.
Definition at line 2055 of file ring.cc.
Definition at line 2075 of file ring.cc.
Definition at line 2065 of file ring.cc.
Definition at line 2042 of file ring.cc.
rRingOrder_t rOrderName | ( | char * | ordername | ) |
char * rOrdStr | ( | ring | r | ) |
Definition at line 526 of file ring.cc.
|
inlinestatic |
(r->cf->P)
Definition at line 605 of file ring.h.
(r->cf->parameter)
Definition at line 631 of file ring.h.
char * rParStr | ( | ring | r | ) |
ring rPlusVar | ( | const ring | r, |
char * | v, | ||
int | left ) |
K[x],"y" -> K[x,y] resp. K[y,x].
Definition at line 5942 of file ring.cc.
|
inlinestatic |
BOOLEAN rSamePolyRep | ( | ring | r1, |
ring | r2 ) |
returns TRUE, if r1 and r2 represents the monomials in the same way FALSE, otherwise this is an analogue to rEqual but not so strict
Changes r by setting induced ordering parameters: limit and reference leading terms F belong to r, we will DO a copy! We will use it AS IS! returns true is everything was alright!
Definition at line 5176 of file ring.cc.
void rSetSyzComp | ( | int | k, |
const ring | r ) |
Definition at line 5230 of file ring.cc.
void rSetWeightVec | ( | ring | r, |
int64 * | wv ) |
char * rString | ( | ring | r | ) |
Definition at line 678 of file ring.cc.
int rSum | ( | ring | r1, |
ring | r2, | ||
ring & | sum ) |
Definition at line 1407 of file ring.cc.
returns -1 for not compatible, 1 for compatible (and sum) dp_dp:0: block ordering, 1: dp,dp, 2: aa(...),dp vartest: check for name conflicts
Definition at line 754 of file ring.cc.
void rUnComplete | ( | ring | r | ) |
Definition at line 4057 of file ring.cc.
|
inlinestatic |
char * rVarStr | ( | ring | r | ) |
Definition at line 227 of file ring.cc.
EXTERN_VAR omBin sip_sring_bin |