30 #ifndef __Functordomain_H
31 #define __Functordomain_H 1
33 #include <feel/feelcore/feel.hpp>
46 template<
typename T =
double>
55 virtual ~FunctorDomain()
58 virtual bool hasLowerBound()
const
63 virtual value_type lowerBound()
const
65 FEELPP_ASSERT(
true )(
"FunctorDomain::lowerBound() called for a domain without "
70 virtual bool hasUpperBound()
const
75 virtual value_type upperBound()
const
77 FEELPP_ASSERT(
true )(
"FunctorDomain::upperBound() called for a domain without "
82 virtual bool hasExcludedPoint()
const
87 virtual value_type excludedPoint()
const
89 FEELPP_ASSERT(
true )(
"FunctorDomain::excludedPoint() called for a domain without "
90 "an excluded point" );
95 template<
typename T =
double>
96 class UnboundedDomain :
public FunctorDomain<T>
98 typedef FunctorDomain<T> super;
102 typedef typename super::value_type value_type;
110 template<
typename T =
double>
111 class PositiveDomain :
public FunctorDomain<T>
113 typedef FunctorDomain<T> super;
117 typedef typename super::value_type value_type;
124 virtual bool hasLowerBound()
const
129 virtual value_type lowerBound()
const
135 template<
typename T =
double>
136 class BoundedDomain :
public FunctorDomain<T>
138 typedef FunctorDomain<T> super;
142 typedef typename super::value_type value_type;
144 BoundedDomain(
const value_type& lower,
const value_type& upper )
151 virtual bool hasLowerBound()
const
156 virtual value_type lowerBound()
const
161 virtual bool hasUpperBound()
const
166 virtual value_type upperBound()
const
177 template<
typename T =
double>
178 class LowerBoundedDomain :
public FunctorDomain<T>
180 typedef FunctorDomain<T> super;
184 typedef typename super::value_type value_type;
186 LowerBoundedDomain(
const value_type& lower )
192 virtual bool hasLowerBound()
const
197 virtual value_type lowerBound()
const
206 template<
typename T =
double>
207 class NonzeroDomain :
public FunctorDomain<T>
209 typedef FunctorDomain<T> super;
213 typedef typename super::value_type value_type;
220 virtual bool hasExcludedPoint()
const
225 virtual value_type excludedPoint()
const