7#ifndef DUNE_FUNCTIONS_COMMON_MULTIINDEX_HH
8#define DUNE_FUNCTIONS_COMMON_MULTIINDEX_HH
14#include <dune/common/hash.hh>
26template<
class size_type, std::
size_t n>
28 public std::array<size_type, n>
31 static constexpr std::size_t
size() {
return n; }
32 static constexpr std::size_t
max_size() {
return n; }
35 return hash_range(v.begin(), v.end());
51template<
class size_type>
53 public std::array<size_type, 1>
57 static constexpr std::size_t
size() {
return 1; }
58 static constexpr std::size_t
max_size() {
return 1; }
61 operator const size_type& ()
const {
66 return hash_range(v.begin(), v.end());
69 operator size_type& () {
77template<
typename Stream,
class size_type, std::
size_t n>
79 for (
const auto& ci : c)
88template<
class size_type, std::
size_t n>
89struct std::tuple_size<
Dune::Functions::StaticMultiIndex<size_type,n> >
90 : std::integral_constant<std::size_t, n> { };
Definition polynomial.hh:17
Definition polynomial.hh:18
Stream & operator<<(Stream &stream, const StaticMultiIndex< size_type, n > &c)
Definition multiindex.hh:78
A statically sized MultiIndex type.
Definition multiindex.hh:29
static constexpr std::size_t size()
Definition multiindex.hh:31
friend std::size_t hash_value(const StaticMultiIndex &v) noexcept
Definition multiindex.hh:34
static constexpr std::size_t max_size()
Definition multiindex.hh:32
static constexpr std::size_t max_size()
Definition multiindex.hh:58
static constexpr std::size_t size()
Definition multiindex.hh:57
friend std::size_t hash_value(const StaticMultiIndex &v) noexcept
Definition multiindex.hh:65