25 #define STICKYPROT(msg) if (BTEST1(OPT_PROT)) Print(msg) 26 #define PROT2(msg,arg) 27 #define STICKYPROT2(msg,arg) if (BTEST1(OPT_PROT)) Print(msg,arg) 28 #define fglmASSERT(ignore1,ignore2) 45 fglmASSERT (N >= 0,
"illegal Vector representation");
50 elems = (number *)
omAlloc (N *
sizeof (number));
51 for(
int i = N - 1;
i >= 0;
i--)
59 for(
int i = N - 1;
i >= 0;
i--)
70 elems_clone = (number *)
omAlloc (N *
sizeof (number));
71 for(
int i = N - 1;
i >= 0;
i--)
72 elems_clone[
i] =
nCopy (elems[
i]);
80 return --ref_count == 0;
93 return ref_count == 1;
103 for(k = N; k > 0; k--)
114 for(k = N; k > 0; k--)
123 fglmASSERT (0 < i && i <= N,
"setelem: wrong index");
130 number temp = elems[i - 1];
136 fglmASSERT (0 < i && i <= N,
"getelem: wrong index");
141 fglmASSERT (0 < i && i <= N,
"getconstelem: wrong index");
180 #ifndef HAVE_EXPLICIT_CONSTR 186 void fglmVector::mac_constr_i (
int size)
191 void fglmVector::clearelems ()
222 int vsize = v.
size ();
224 fglmASSERT (vsize <= rep->
size (),
"v has to be smaller oder equal");
227 for(i = vsize; i > 0; i--)
235 for(i =
rep->
size (); i > vsize; i--)
244 for(i = vsize; i > 0; i--)
248 newelems[i - 1] =
nSub (term1, term2);
252 for(i =
rep->
size (); i > vsize; i--)
281 for(i =
rep->
size (); i > 0; i--)
292 return !(*
this ==
v);
312 for(i =
rep->
size (); i > 0; i--)
319 newelems = (number *)
omAlloc (n *
sizeof (number));
320 for(i = n; i > 0; i--)
334 for(i =
rep->
size (); i > 0; i--)
341 newelems = (number *)
omAlloc (n *
sizeof (number));
342 for(i = n; i > 0; i--)
357 temp = (number *)
omAlloc (s *
sizeof (number));
358 for(i = s; i > 0; i--)
365 for(i = s; i > 0; i--)
378 temp = (number *)
omAlloc (s *
sizeof (number));
379 for(i = s; i > 0; i--)
389 for(i = s; i > 0; i--)
403 for(i = v.
size (); i > 0; i--)
465 while(i > 0 && !found)
470 theGcd =
nCopy (current);
483 while(i > 0 && !gcdIsOne)
504 number theLcm =
nInit (1);
507 for(i =
size (); i > 0; i--)
527 for(i =
size (); i > 0; i--)
int numNonZeroElems() const
const CanonicalForm int s
void setelem(int i, number n)
fglmVectorRep * copyObject()
fglmVectorRep * clone() const
number getconstelem(int i) const
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)
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 &)
void nihilate(const number fac1, const number fac2, const fglmVector v)
friend fglmVector operator*(const fglmVector &v, const number n)
#define fglmASSERT(ignore1, ignore2)
const Variable & v
< [in] a sqrfree bivariate poly
fglmVector & operator+=(const fglmVector &)
void setelem(int i, number &n)
int numNonZeroElems() const
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static FORCE_INLINE number n_SubringGcd(number a, number b, const coeffs r)
fglmVector & operator*=(const number &)
friend fglmVector operator-(const fglmVector &v)
number getconstelem(int i) const
fglmVector & operator/=(const number &)
fglmVectorRep(int n, number *e)