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 &)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
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
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)