1 #ifndef bempp_abstract_boundary_operator_id_hpp
2 #define bempp_abstract_boundary_operator_id_hpp
4 #include "../common/common.hpp"
5 #include "../common/deprecated.hpp"
6 #include "../common/shared_ptr.hpp"
9 #include <boost/functional/hash.hpp>
25 virtual size_t hash()
const = 0;
26 virtual void dump()
const {}
31 return isEqual(other);
35 return !operator==(other);
44 inline size_t tbb_hasher(
45 const boost::shared_ptr<const Bempp::AbstractBoundaryOperatorId>&
id)
50 inline size_t tbb_hasher(
float id)
52 return boost::hash<float>()(
id);
55 inline size_t tbb_hasher(
double id)
57 return boost::hash<double>()(
id);
62 #include <tbb/concurrent_unordered_map.h>
69 inline void tbb_hash_combine(
size_t& seed,
const T& v)
71 seed ^= tbb::tbb_hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
76 #endif // bempp_abstract_boundary_operator_id_hpp
Base class for identifiers of an abstract boundary operator.
Definition: abstract_boundary_operator_id.hpp:21