summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-12-21 10:41:16 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2018-01-10 13:18:05 +0100
commitd5f215d88e52c3c7a45ad35411e3d8fc71ea89a5 (patch)
treec579773059b6565696a17a8554b7c48c66b97d14 /eval
parente3c842c8f7271126cb9e869937da907c4ddfd312 (diff)
Use cheap and_modulator instead of prime modulator to avoid costly division.
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp3
-rw-r--r--eval/src/vespa/eval/tensor/sparse/sparse_tensor.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
index b69b1cdab05..1f57e297ea1 100644
--- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.cpp
@@ -188,4 +188,5 @@ SparseTensor::reduce(join_fun_t op,
}
-VESPALIB_HASH_MAP_INSTANTIATE(vespalib::tensor::SparseTensorAddressRef, double);
+VESPALIB_HASH_MAP_INSTANTIATE_H_E_M(vespalib::tensor::SparseTensorAddressRef, double, vespalib::hash<vespalib::tensor::SparseTensorAddressRef>,
+ std::equal_to<vespalib::tensor::SparseTensorAddressRef>, vespalib::hashtable_base::and_modulator);
diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
index 2715e606729..3eeb122f48c 100644
--- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
+++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor.h
@@ -21,7 +21,8 @@ namespace vespalib::tensor {
class SparseTensor : public Tensor
{
public:
- using Cells = hash_map<SparseTensorAddressRef, double>;
+ using Cells = hash_map<SparseTensorAddressRef, double, hash<SparseTensorAddressRef>,
+ std::equal_to<SparseTensorAddressRef>, hashtable_base::and_modulator>;
static constexpr size_t STASH_CHUNK_SIZE = 16384u;