PolyBoRi
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
libpolybori
include
polybori
factories
PolynomialFactory.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
//*****************************************************************************
15
//*****************************************************************************
16
17
#ifndef polybori_factories_PolynomialFactory_h_
18
#define polybori_factories_PolynomialFactory_h_
19
20
// include basic definitions
21
#include <
polybori/pbori_defs.h
>
22
#include <
polybori/factories/CFactoryBase.h
>
23
#include <
polybori/BoolePolynomial.h
>
24
#include <
polybori/BooleMonomial.h
>
25
BEGIN_NAMESPACE_PBORI
26
33
class
PolynomialFactory
:
34
public
CFactoryBase
{
36
typedef
PolynomialFactory
self
;
37
39
typedef
CFactoryBase
base
;
40
41
public
:
43
typedef
base::parent_type
parent_type
;
44
46
typedef
BoolePolynomial
value_type
;
47
49
PolynomialFactory
(
const
parent_type
& ring):
base
(ring) {}
50
52
PolynomialFactory
(
const
self
& rhs):
base
(rhs) {}
53
55
~PolynomialFactory
() {}
56
58
value_type
operator()
()
const
{
59
return
value_type
(parent());
60
}
61
63
value_type
operator()
(
const
value_type
& rhs)
const
{
64
return
rhs;
65
}
66
68
value_type
operator()
(
const
value_type::ring_type
& ring)
const
{
69
return
value_type
(ring);
70
}
71
73
value_type
operator()
(
const
value_type::var_type
& var)
const
{
74
return
value_type::monom_type
(var);
75
}
76
78
value_type
operator()
(
const
value_type::monom_type
& monom)
const
{
79
return
value_type
(monom);
80
}
81
83
value_type
operator()
(
const
value_type::exp_type
& rhs)
const
{
84
return
value_type
(rhs, parent());
85
}
86
88
value_type
operator()(
const
value_type::exp_type
& rhs,
89
const
value_type::ring_type
& ring)
const
{
90
return
value_type
(rhs, ring);
91
}
93
value_type
operator()(
value_type::constant_type
isOne,
94
const
value_type::ring_type
& ring)
const
{
95
return
value_type
(isOne, ring);
96
}
97
99
value_type
operator()
(
value_type::constant_type
isOne)
const
{
100
return
value_type
(isOne, parent());
101
}
102
104
value_type
operator()
(
const
value_type::dd_type
& rhs)
const
{
105
return
value_type
(rhs);
106
}
107
109
value_type
operator()(
const
value_type::navigator
& rhs,
110
const
value_type::ring_type
& ring)
const
{
111
return
value_type
(rhs, ring);
112
}
114
value_type
operator()
(
const
value_type::navigator
& rhs)
const
{
115
return
value_type
(rhs, parent());
116
}
117
};
118
119
END_NAMESPACE_PBORI
120
121
#endif
/* polybori_factories_PolynomialFactory_h_ */
Generated by
1.8.3.1