PolyBoRi
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
libpolybori
include
polybori
factories
SetFactory.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
//*****************************************************************************
15
//*****************************************************************************
16
17
#ifndef polybori_SetFactory_h_
18
#define polybori_SetFactory_h_
19
20
// include basic definitions
21
#include <
polybori/pbori_defs.h
>
22
#include <
polybori/factories/CFactoryBase.h
>
23
#include <
polybori/BooleSet.h
>
24
#include <
polybori/BooleMonomial.h
>
25
BEGIN_NAMESPACE_PBORI
26
33
class
SetFactory
:
34
public
CFactoryBase
{
36
typedef
SetFactory
self
;
37
39
typedef
CFactoryBase
base
;
40
41
public
:
43
typedef
base::parent_type
parent_type
;
44
46
typedef
BooleSet
value_type
;
47
49
SetFactory
(
const
parent_type
& ring):
base
(ring) {}
50
52
SetFactory
(
const
self
& rhs):
base
(rhs) {}
53
55
~SetFactory
() {}
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()(
value_type::idx_type
idx,
74
const
value_type
& first,
75
const
value_type
& second)
const
{
76
return
value_type
(idx, first, second);
77
}
78
80
value_type
operator()(
value_type::idx_type
idx,
81
value_type::navigator
first,
82
value_type::navigator
second)
const
{
83
return
value_type
(idx, first, second, parent());
84
}
85
87
value_type
operator()(
value_type::idx_type
idx,
88
value_type::navigator
first,
89
value_type::navigator
second,
90
value_type::ring_type
& ring)
const
{
91
return
value_type
(idx, first, second, ring);
92
}
93
95
value_type
operator()(
value_type::navigator
navi,
96
value_type::ring_type
& ring)
const
{
97
return
value_type
(navi, ring);
98
}
99
101
value_type
operator()
(
value_type::navigator
navi)
const
{
102
return
value_type
(navi, parent());
103
}
104
};
105
106
END_NAMESPACE_PBORI
107
108
#endif
/* polybori_SetFactory_h_ */
Generated by
1.8.3.1