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 152 of file ringgb.cc.
153{
154 if (rside ==
NULL)
return -1;
156
158 {
159 if
161 {
163 }
164 }
165 return -1;
166}
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
◆ indexOf2()
◆ plain_spoly()
poly plain_spoly |
( |
poly |
f, |
|
|
poly |
g |
|
) |
| |
Definition at line 168 of file ringgb.cc.
169{
172 poly fm, gm;
179 return(sp);
180}
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 185 of file ringgb.cc.
186{
191 {
196 }
199}
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 96 of file ringgb.cc.
97{
101}
void PrintS(const char *s)
◆ reduce_poly_fct()
poly reduce_poly_fct |
( |
poly |
p, |
|
|
ring |
r |
|
) |
| |
Definition at line 29 of file ringgb.cc.
30{
32}
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
◆ ring2toM_GetLeadTerms()
Definition at line 57 of file ringgb.cc.
59{
64
65 for (
i = p_r->N;
i;
i--)
66 {
69 {
72 }
73 else
74 {
77 }
78 }
83 if (cp1 != 0 && cp2 != 0)
84 {
85 while (cp1%2 == 0 && cp2%2 == 0)
86 {
87 cp1 = cp1 / 2;
88 cp2 = cp2 / 2;
89 }
90 }
94}
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 201 of file ringgb.cc.
202{
203
208 int c = 1;
209 while (
h !=
NULL &&
i >= 0) {
210
211
212
213
214
215
219
220
221
223 c++;
224 }
226}
#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 117 of file ringgb.cc.
118{
119
123 int c = 0;
125 {
126 Print(
"%d-step RedNF - g=", c);
135 }
136 c++;
137 }
139}
#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 103 of file ringgb.cc.
104{
108
109
110
114 return(sp);
115}
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 228 of file ringgb.cc.
228 {
235 PrintS(
"Not reduced to zero from I: ");
240 return(0);
241 }
243 }
244 PrintS(
" Yes!\nspoly --> 0?");
246 {
248 {
254 {
264 return(0);
265 }
271 }
272 }
274 {
275 PrintS(
" Yes!\nzero-spoly --> 0?");
277 {
290 return(0);
291 }
295 }
296 }
299 return(1);
300}
static BOOLEAN rField_is_Domain(const ring r)
poly plain_zero_spoly(poly h)