Go to the source code of this file.
|
poly | reduce_poly_fct (poly p, ring r) |
|
int | indexOf2 (number n) |
|
BOOLEAN | ring2toM_GetLeadTerms (const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r) |
|
void | printPolyMsg (const char *start, poly f, const char *end) |
|
poly | spolyRing2toM (poly f, poly g, ring r) |
|
poly | ringRedNF (poly f, ideal G, ring r) |
|
int | findRingSolver (poly rside, ideal G, ring r) |
|
poly | plain_spoly (poly f, poly g) |
|
poly | plain_zero_spoly (poly h) |
|
poly | ringNF (poly f, ideal G, ring r) |
|
int | testGB (ideal I, ideal GI) |
|
◆ NO_BUCKETS
◆ findRingSolver()
int findRingSolver |
( |
poly | rside, |
|
|
ideal | G, |
|
|
ring | r ) |
Definition at line 147 of file ringgb.cc.
148{
149 if (rside ==
NULL)
return -1;
151
153 {
154 if
156 {
158 }
159 }
160 return -1;
161}
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
◆ indexOf2()
◆ plain_spoly()
poly plain_spoly |
( |
poly | f, |
|
|
poly | g ) |
Definition at line 163 of file ringgb.cc.
164{
167 poly fm, gm;
174 return(sp);
175}
KINLINE BOOLEAN k_GetLeadTerms(const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r)
int ksCheckCoeff(number *a, number *b, const coeffs r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
◆ plain_zero_spoly()
poly plain_zero_spoly |
( |
poly | h | ) |
|
Definition at line 180 of file ringgb.cc.
181{
186 {
191 }
194}
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ,...
static FORCE_INLINE number n_Ann(number a, const coeffs r)
if r is a ring with zero divisors, return an annihilator!=0 of b otherwise return NULL
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static FORCE_INLINE BOOLEAN n_IsOne(number n, const coeffs r)
TRUE iff 'n' represents the one element.
static poly p_Copy(poly p, const ring r)
returns a copy of p
#define __p_Mult_nn(p, n, r)
◆ printPolyMsg()
void printPolyMsg |
( |
const char * | start, |
|
|
poly | f, |
|
|
const char * | end ) |
Definition at line 95 of file ringgb.cc.
96{
100}
void PrintS(const char *s)
◆ reduce_poly_fct()
poly reduce_poly_fct |
( |
poly | p, |
|
|
ring | r ) |
Definition at line 28 of file ringgb.cc.
29{
31}
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
◆ ring2toM_GetLeadTerms()
Definition at line 56 of file ringgb.cc.
58{
63
64 for (
i = p_r->N;
i;
i--)
65 {
68 {
71 }
72 else
73 {
76 }
77 }
82 if (cp1 != 0 && cp2 != 0)
83 {
84 while (cp1%2 == 0 && cp2%2 == 0)
85 {
86 cp1 = cp1 / 2;
87 cp2 = cp2 / 2;
88 }
89 }
93}
static long p_GetExpDiff(poly p1, poly p2, int i, ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
static number p_SetCoeff(poly p, number n, ring r)
static poly p_Init(const ring r, omBin bin)
◆ ringNF()
poly ringNF |
( |
poly | f, |
|
|
ideal | G, |
|
|
ring | r ) |
Definition at line 196 of file ringgb.cc.
197{
198
203 int c = 1;
204 while (
h !=
NULL &&
i >= 0) {
205
206
207
208
209
210
214
215
216
218 c++;
219 }
221}
#define pCopy(p)
return a copy of the poly
int findRingSolver(poly rside, ideal G, ring r)
poly plain_spoly(poly f, poly g)
◆ ringRedNF()
poly ringRedNF |
( |
poly | f, |
|
|
ideal | G, |
|
|
ring | r ) |
Definition at line 116 of file ringgb.cc.
117{
118
122 int c = 0;
124 {
125 Print(
"%d-step RedNF - g=", c);
134 }
135 c++;
136 }
138}
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
poly ringNF(poly f, ideal G, ring r)
◆ spolyRing2toM()
poly spolyRing2toM |
( |
poly | f, |
|
|
poly | g, |
|
|
ring | r ) |
Definition at line 102 of file ringgb.cc.
103{
107
108
109
113 return(sp);
114}
static poly pp_Mult_mm(poly p, poly m, const ring r)
static poly p_Mult_mm(poly p, poly m, const ring r)
BOOLEAN ring2toM_GetLeadTerms(const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r)
◆ testGB()
int testGB |
( |
ideal | I, |
|
|
ideal | GI ) |
Definition at line 223 of file ringgb.cc.
223 {
230 PrintS(
"Not reduced to zero from I: ");
235 return(0);
236 }
238 }
239 PrintS(
" Yes!\nspoly --> 0?");
241 {
243 {
249 {
259 return(0);
260 }
266 }
267 }
269 {
270 PrintS(
" Yes!\nzero-spoly --> 0?");
272 {
285 return(0);
286 }
290 }
291 }
294 return(1);
295}
static BOOLEAN rField_is_Domain(const ring r)
poly plain_zero_spoly(poly h)