source: git/libpolys/polys/prCopyTemplate.cc @ 405407

spielwiese
Last change on this file since 405407 was 69745c, checked in by Oleksandr Motsak <motsak@…>, 11 years ago
Fixed walk
  • Property mode set to 100644
File size: 922 bytes
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/*
5* ABSTRACT - templates for pr routines
6*/
7
8
9static poly PR_NAME
10(poly &src, const ring r_src, const ring r_dest)
11{
12  if (src==NULL) return NULL;
13
14  /* PrintS("src: "); p_Write(src, r_src); PrintLn(); */
15   
16  //  p_Test(src, r_src); // may fail due to wrong monomial order
17  spolyrec dest_s;
18   
19  poly dest = &dest_s;
20  PR_INIT_EVECTOR_COPY(r_src, r_dest);
21
22  poly p = src; src = NULL;
23  while (p != NULL)
24  {
25    pNext(dest) = (poly) PR_ALLOC_MONOM(r_dest); pIter(dest);
26     
27    p_SetCoeff0(dest, PR_NCOPY(p_GetCoeff(p, r_src), r_src), r_dest);
28    PR_CPY_EVECTOR(dest, r_dest, p, r_src);
29     
30    { poly tmp = pNext(p); PR_DELETE_MONOM(p, r_src); p = tmp; }
31  }
32  pNext(dest) = NULL;
33  dest = pNext(&dest_s);
34  PR_SORT_POLY(dest, r_dest, r_src);
35  p_Test(dest, r_dest);
36  return dest;
37}
Note: See TracBrowser for help on using the repository browser.