diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2018-12-28 17:33:35 -0500 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2018-12-28 17:33:35 -0500 |
commit | 9e1610143f0e96b77ca962a7113d79a2fbcbf6f5 (patch) | |
tree | 17d5f699769c9eb7cec602c19b68438e6e6cec14 /lib/include/array_hash.hpp | |
parent | a20ac5471a35c9c2a70b48fc4393d2323b52bd85 (diff) | |
download | fuse_networks-9e1610143f0e96b77ca962a7113d79a2fbcbf6f5.tar.gz fuse_networks-9e1610143f0e96b77ca962a7113d79a2fbcbf6f5.tar.bz2 fuse_networks-9e1610143f0e96b77ca962a7113d79a2fbcbf6f5.zip |
partially fixed problems that arise in small systems by reworking the way that boundary edges are identified
Diffstat (limited to 'lib/include/array_hash.hpp')
-rw-r--r-- | lib/include/array_hash.hpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/include/array_hash.hpp b/lib/include/array_hash.hpp new file mode 100644 index 0000000..3b35e4a --- /dev/null +++ b/lib/include/array_hash.hpp @@ -0,0 +1,27 @@ + +#pragma once + +#include <array> +#include <unordered_map> + +namespace std +{ + template<typename T, size_t N> + struct hash<array<T, N> > + { + typedef array<T, N> argument_type; + typedef size_t result_type; + + result_type operator()(const argument_type& a) const + { + hash<T> hasher; + result_type h = 0; + for (result_type i = 0; i < N; ++i) + { + h = h * 31 + hasher(a[i]); + } + return h; + } + }; +} + |