26 #define STICKYPROT(msg) if (BTEST1(OPT_PROT)) Print(msg) 27 #define PROT2(msg,arg) 28 #define STICKYPROT2(msg,arg) if (BTEST1(OPT_PROT)) Print(msg,arg) 29 #define fglmASSERT(ignore1,ignore2) 46 fglmASSERT (N >= 0,
"illegal Vector representation");
51 elems = (number *)
omAlloc (N *
sizeof (number));
52 for(
int i = N - 1;
i >= 0;
i--)
60 for(
int i = N - 1;
i >= 0;
i--)
71 elems_clone = (number *)
omAlloc (N *
sizeof (number));
72 for(
int i = N - 1;
i >= 0;
i--)
73 elems_clone[
i] =
nCopy (elems[
i]);
81 return --ref_count == 0;
94 return ref_count == 1;
104 for(k = N; k > 0; k--)
113 for(k = N; k > 0; k--)
120 fglmASSERT (0 < i && i <= N,
"setelem: wrong index");
127 number temp = elems[i - 1];
133 fglmASSERT (0 < i && i <= N,
"getelem: wrong index");
138 fglmASSERT (0 < i && i <= N,
"getconstelem: wrong index");
177 #ifndef HAVE_EXPLICIT_CONSTR 183 void fglmVector::mac_constr_i (
int size)
188 void fglmVector::clearelems ()
219 int vsize = v.
size ();
221 fglmASSERT (vsize <= rep->
size (),
"v has to be smaller oder equal");
224 for(i = vsize; i > 0; i--)
232 for(i =
rep->
size (); i > vsize; i--)
241 for(i = vsize; i > 0; i--)
245 newelems[i - 1] =
nSub (term1, term2);
249 for(i =
rep->
size (); i > vsize; i--)
278 for(i =
rep->
size (); i > 0; i--)
289 return !(*
this ==
v);
309 for(i =
rep->
size (); i > 0; i--)
316 newelems = (number *)
omAlloc (n *
sizeof (number));
317 for(i = n; i > 0; i--)
331 for(i =
rep->
size (); i > 0; i--)
338 newelems = (number *)
omAlloc (n *
sizeof (number));
339 for(i = n; i > 0; i--)
354 temp = (number *)
omAlloc (s *
sizeof (number));
355 for(i = s; i > 0; i--)
362 for(i = s; i > 0; i--)
375 temp = (number *)
omAlloc (s *
sizeof (number));
376 for(i = s; i > 0; i--)
386 for(i = s; i > 0; i--)
400 for(i = v.
size (); i > 0; i--)
462 while(i > 0 && !found)
467 theGcd =
nCopy (current);
480 while(i > 0 && !gcdIsOne)
501 number theLcm =
nInit (1);
504 for(i =
size (); i > 0; i--)
524 for(i =
size (); i > 0; i--)
const CanonicalForm int s
void setelem(int i, number n)
fglmVectorRep * copyObject()
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
#define omFreeSize(addr, size)
friend fglmVector operator+(const fglmVector &lhs, const fglmVector &rhs)
int operator!=(const fglmVector &)
fglmVector & operator=(const fglmVector &v)
number getconstelem(int i) const
static FORCE_INLINE number n_NormalizeHelper(number a, number b, const coeffs r)
assume that r is a quotient field (otherwise, return 1) for arguments (a1/a2,b1/b2) return (lcm(a1...
number ejectelem(int i, number n)
int operator==(const fglmVector &)
fglmVector & operator-=(const fglmVector &)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
int numNonZeroElems() const
void nihilate(const number fac1, const number fac2, const fglmVector v)
int numNonZeroElems() const
friend fglmVector operator*(const fglmVector &v, const number n)
fglmVectorRep * clone() const
#define fglmASSERT(ignore1, ignore2)
number getconstelem(int i) const
const Variable & v
< [in] a sqrfree bivariate poly
fglmVector & operator+=(const fglmVector &)
void setelem(int i, number &n)
static FORCE_INLINE number n_SubringGcd(number a, number b, const coeffs r)
fglmVector & operator*=(const number &)
friend fglmVector operator-(const fglmVector &v)
fglmVector & operator/=(const number &)
fglmVectorRep(int n, number *e)