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--)
115 for(k = N; k > 0; k--)
124 fglmASSERT (0 < i && i <= N,
"setelem: wrong index");
131 number temp = elems[i - 1];
137 fglmASSERT (0 < i && i <= N,
"getelem: wrong index");
142 fglmASSERT (0 < i && i <= N,
"getconstelem: wrong index");
181 #ifndef HAVE_EXPLICIT_CONSTR 187 void fglmVector::mac_constr_i (
int size)
192 void fglmVector::clearelems ()
223 int vsize = v.
size ();
225 fglmASSERT (vsize <= rep->
size (),
"v has to be smaller oder equal");
228 for(i = vsize; i > 0; i--)
236 for(i =
rep->
size (); i > vsize; i--)
245 for(i = vsize; i > 0; i--)
249 newelems[i - 1] =
nSub (term1, term2);
253 for(i =
rep->
size (); i > vsize; i--)
282 for(i =
rep->
size (); i > 0; i--)
293 return !(*
this ==
v);
313 for(i =
rep->
size (); i > 0; i--)
320 newelems = (number *)
omAlloc (n *
sizeof (number));
321 for(i = n; i > 0; i--)
335 for(i =
rep->
size (); i > 0; i--)
342 newelems = (number *)
omAlloc (n *
sizeof (number));
343 for(i = n; i > 0; i--)
358 temp = (number *)
omAlloc (s *
sizeof (number));
359 for(i = s; i > 0; i--)
366 for(i = s; i > 0; i--)
379 temp = (number *)
omAlloc (s *
sizeof (number));
380 for(i = s; i > 0; i--)
390 for(i = s; i > 0; i--)
404 for(i = v.
size (); i > 0; i--)
466 while(i > 0 && !found)
471 theGcd =
nCopy (current);
484 while(i > 0 && !gcdIsOne)
505 number theLcm =
nInit (1);
508 for(i =
size (); i > 0; i--)
528 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 &)
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)