Functions
p_Copy__T.cc File Reference

Go to the source code of this file.

Functions

LINKAGE poly p_Copy__T (poly s_p, const ring r)
 

Function Documentation

LINKAGE poly p_Copy__T ( poly  s_p,
const ring  r 
)

Definition at line 11 of file p_Copy__T.cc.

12 {
13  // let's not do tests here -- but instead allow
14  // to be sloppy
15  spolyrec dp;
16  poly d_p = &dp;
17  omBin bin = r->PolyBin;
18  poly h;
19 
20  DECLARE_LENGTH(const unsigned long length = r->ExpL_Size);
21 
22  while (s_p != NULL)
23  {
24  p_AllocBin(pNext(d_p), bin, r);
25  pIter(d_p);
26  pSetCoeff0(d_p, n_Copy__T(pGetCoeff(s_p), r->cf));
27  // it is better to iter here,
28  // for MemCopy advances goes from low to high addresses
29  h = s_p;
30  s_p = pNext(s_p);
31  p_MemCopy__T(d_p->exp, h->exp, length);
32  }
33  pNext(d_p) = NULL;
34 
35  return dp.next;
36 }
omBin_t * omBin
Definition: omStructs.h:12
#define p_AllocBin(p, bin, r)
Definition: monomials.h:256
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
Definition: monomials.h:51
#define pIter(p)
Definition: monomials.h:44
const ring r
Definition: syzextra.cc:208
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
#define pSetCoeff0(p, n)
Definition: monomials.h:67
polyrec * poly
Definition: hilb.h:10
static Poly * h
Definition: janet.cc:978
poly next
Definition: monomials.h:31