My Project
UNKNOWN_GIT_VERSION
libpolys
polys
templates
p_Mult_nn__T.cc
Go to the documentation of this file.
1
/****************************************
2
* Computer Algebra System SINGULAR *
3
****************************************/
4
/***************************************************************
5
* File: p_Mult_n__Template.cc
6
* Purpose: template for p_Mult_n
7
* Author: obachman (Olaf Bachmann)
8
* Created: 8/00
9
*******************************************************************/
10
11
/***************************************************************
12
*
13
* Returns: p*n
14
* Destroys: p
15
* Const: n
16
*
17
***************************************************************/
18
LINKAGE
poly
p_Mult_nn__T
(poly
p
,
const
number n,
const
ring r)
19
{
20
pAssume
(!n_IsZero__T(n,r->cf));
21
p_Test
(
p
, r);
22
23
poly q =
p
;
24
#ifdef HAVE_ZERODIVISORS
25
poly old =
NULL
;
26
#endif
27
while
(
p
!=
NULL
)
28
{
29
#ifndef HAVE_ZERODIVISORS
30
n_InpMult__T(
pGetCoeff
(
p
), n, r->cf);
31
pIter
(
p
);
32
#else
33
number tmp = n_Mult__T(n,
pGetCoeff
(
p
), r->cf);
34
if
(!n_IsZero__T(tmp,r->cf))
35
{
36
number nc =
pGetCoeff
(
p
);
37
p_SetCoeff0
(
p
, tmp, r);
38
n_Delete__T
(&nc, r->cf);
39
old =
p
;
40
pIter
(
p
);
41
}
42
else
43
{
44
n_Delete__T
(&tmp, r->cf);
45
if
(old ==
NULL
)
46
{
47
pIter
(
p
);
48
p_LmDelete
(&q, r);
49
}
50
else
51
{
52
p_LmDelete
(&
p
, r);
53
pNext
(old) =
p
;
54
}
55
}
56
#endif
57
}
58
p_Test
(q, r);
59
return
q;
60
}
p_SetCoeff0
#define p_SetCoeff0(p, n, r)
Definition:
monomials.h:58
pAssume
#define pAssume(cond)
Definition:
monomials.h:87
p_Test
#define p_Test(p, r)
Definition:
p_polys.h:156
p_Mult_nn__T
LINKAGE poly p_Mult_nn__T(poly p, const number n, const ring r)
Definition:
p_Mult_nn__T.cc:15
p_LmDelete
static void p_LmDelete(poly p, const ring r)
Definition:
p_polys.h:699
pIter
#define pIter(p)
Definition:
monomials.h:35
n_Delete__T
#define n_Delete__T(n, r)
Definition:
p_polys.cc:4790
NULL
#define NULL
Definition:
omList.c:9
p
int p
Definition:
cfModGcd.cc:4019
pGetCoeff
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
Definition:
monomials.h:42
LINKAGE
#define LINKAGE
Definition:
mod2.h:137
pNext
#define pNext(p)
Definition:
monomials.h:34
Generated on Thu Jan 9 2020 00:00:00 for My Project by
doxygen 1.8.16
for
Singular UNKNOWN_GIT_VERSION