PolyBoRi
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
groebner
include
polybori
groebner
ReductionTerms.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
//*****************************************************************************
14
//*****************************************************************************
15
16
#ifndef polybori_groebner_ReductionTerms_h_
17
#define polybori_groebner_ReductionTerms_h_
18
19
#include "
BoundedDivisorsOf.h
"
20
#include "
RelatedTerms.h
"
21
#include "
LLReductor.h
"
22
#include "
MinimalLeadingTerms.h
"
23
#include "
MonomialTerms.h
"
24
#include "
LeadingTerms.h
"
25
#include "
LeadingTerms00.h
"
26
#include "
LeadingTerms11.h
"
27
#include "
MonomialPlusOneTerms.h
"
28
29
#include <
polybori/routines/pbori_algo.h
>
// which
30
31
32
// include basic definitions
33
#include "
groebner_defs.h
"
34
35
BEGIN_NAMESPACE_PBORIGB
36
37
38
// nf
39
MonomialSet
mod_mon_set
(
const
MonomialSet
& as,
const
MonomialSet
&vs);
40
46
class
ReductionTerms
{
48
typedef
ReductionTerms
self
;
49
50
public
:
51
LeadingTerms
leadingTerms
;
52
MinimalLeadingTerms
minimalLeadingTerms
;
53
LeadingTerms11
leadingTerms11
;
54
LeadingTerms00
leadingTerms00
;
55
LLReductor
llReductor
;
56
MonomialTerms
monomials
;
57
MonomialPlusOneTerms
monomials_plus_one
;
58
60
ReductionTerms
(
const
BoolePolyRing
& ring):
61
leadingTerms(ring), minimalLeadingTerms(ring),
62
leadingTerms11(ring), leadingTerms00(ring),
63
llReductor(ring), monomials(ring), monomials_plus_one(ring) { }
64
67
RelatedTerms
related
(
const
PolyEntry
& entry)
const
{
68
MonomialSet
empty(entry.
p
.
ring
());
69
bool
is00 = entry.
literal_factors
.
is00Factorization
();
70
bool
is11 = entry.
literal_factors
.
is11Factorization
();
71
72
if
(!( (is00 && (leadingTerms == leadingTerms00)) ||
73
(is11 && (leadingTerms == leadingTerms11))) ){
74
PBORI_ASSERT
(entry.
p
.
isOne
() || !is00 || !is11);
75
76
return
RelatedTerms
(entry.
lead
, leadingTerms,
77
which
(is11, leadingTerms11,
78
is00, leadingTerms00, empty));
79
}
80
return
RelatedTerms
(entry.
p
.
ring
());
81
}
82
83
};
84
85
END_NAMESPACE_PBORIGB
86
87
#endif
/* polybori_groebner_ReductionTerms_h_ */
Generated by
1.8.3.1