My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
libpolys
polys
templates
Functions
pp_Mult_mm__T.cc File Reference
Go to the source code of this file.
Functions
LINKAGE
poly
pp_Mult_mm__T
(poly p,
const
poly m,
const
ring ri)
Function Documentation
◆
pp_Mult_mm__T()
LINKAGE
poly pp_Mult_mm__T
(
poly
p
,
const
poly
m
,
const
ring
ri
)
Definition at line
17
of file
pp_Mult_mm__T.cc
.
18
{
19
p_Test
(
p
, ri);
20
p_LmTest
(
m
, ri);
21
if
(
p
==
NULL
)
22
{
23
return
NULL
;
24
}
25
spolyrec
rp;
26
#ifdef HAVE_ZERODIVISORS
27
rp.
next
=
NULL
;
28
#endif
29
poly q = &rp;
30
number ln =
pGetCoeff
(
m
);
31
omBin
bin = ri->PolyBin;
32
DECLARE_LENGTH(
const
unsigned
long
length
= ri->ExpL_Size);
33
const
unsigned
long
* m_e =
m
->exp;
34
pAssume
(!n_IsZero__T(ln,ri->cf));
35
pAssume1
(
p_GetComp
(
m
, ri) == 0 ||
p_MaxComp
(
p
, ri) == 0);
36
number tmp;
37
38
do
39
{
40
tmp = n_Mult__T(ln,
pGetCoeff
(
p
), ri->cf);
41
#ifdef HAVE_ZERODIVISORS
42
if
(! n_IsZero__T(tmp, ri->cf))
43
{
44
#endif
45
p_AllocBin
(
pNext
(q), bin, ri);
46
q =
pNext
(q);
47
pSetCoeff0
(q, tmp);
48
p_MemSum__T(q->exp,
p
->exp, m_e,
length
);
49
p_MemAddAdjust__T(q, ri);
50
#ifdef HAVE_ZERODIVISORS
51
}
52
else
n_Delete__T
(&tmp, ri->cf);
53
#endif
54
p
=
pNext
(
p
);
55
}
56
while
(
p
!=
NULL
);
57
pNext
(q) =
NULL
;
58
59
p_Test
(
pNext
(&rp), ri);
60
return
pNext
(&rp);
61
}
m
int m
Definition
cfEzgcd.cc:128
p
int p
Definition
cfModGcd.cc:4086
length
static BOOLEAN length(leftv result, leftv arg)
Definition
interval.cc:257
p_GetComp
#define p_GetComp(p, r)
Definition
monomials.h:64
spolyrec::next
poly next
Definition
monomials.h:24
pNext
#define pNext(p)
Definition
monomials.h:36
pAssume1
#define pAssume1(cond)
Definition
monomials.h:171
pSetCoeff0
#define pSetCoeff0(p, n)
Definition
monomials.h:59
p_AllocBin
#define p_AllocBin(p, bin, r)
Definition
monomials.h:210
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:44
pAssume
#define pAssume(cond)
Definition
monomials.h:90
spolyrec
Definition
monomials.h:23
NULL
#define NULL
Definition
omList.c:12
omBin
omBin_t * omBin
Definition
omStructs.h:12
n_Delete__T
#define n_Delete__T(n, r)
Definition
p_polys.cc:5055
p_MaxComp
static long p_MaxComp(poly p, ring lmRing, ring tailRing)
Definition
p_polys.h:294
p_LmTest
#define p_LmTest(p, r)
Definition
p_polys.h:162
p_Test
#define p_Test(p, r)
Definition
p_polys.h:161
Generated on
for My Project by
doxygen 1.17.0
for
Singular