source: git/kernel/p_Copy__T.cc @ f3a8c2e

spielwiese
Last change on this file since f3a8c2e was 35aab3, checked in by Hans Schönemann <hannes@…>, 20 years ago
This commit was generated by cvs2svn to compensate for changes in r6879, which included commits to RCS files with non-trunk default branches. git-svn-id: file:///usr/local/Singular/svn/trunk@6880 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.0 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/***************************************************************
5 *  File:    p_Copy__Template.cc
6 *  Purpose: template for p_Copy
7 *  Author:  obachman (Olaf Bachmann)
8 *  Created: 8/00
9 *  Version: $Id: p_Copy__T.cc,v 1.1.1.1 2003-10-06 12:15:59 Singular Exp $
10 *******************************************************************/
11
12LINKAGE poly p_Copy(poly s_p, const ring r)
13{
14  // let's not do tests here -- but instead allow
15  // to be sloppy
16  spolyrec dp;
17  poly d_p = &dp;
18  omBin bin = r->PolyBin;
19  poly h;
20
21  DECLARE_LENGTH(const unsigned long length = r->ExpL_Size);
22
23  while (s_p != NULL)
24  {
25    p_AllocBin(pNext(d_p), bin, r);
26    pIter(d_p);
27    pSetCoeff0(d_p, n_Copy(pGetCoeff(s_p), r));
28    // it is better to iter here,
29    // for MemCopy advances goes from low to high addresses
30    h = s_p;
31    s_p = pNext(s_p);
32    p_MemCopy(d_p->exp, h->exp, length);
33  }
34  pNext(d_p) = NULL;
35
36  return dp.next;
37}
38
Note: See TracBrowser for help on using the repository browser.