summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-02-11 19:19:42 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-02-11 19:19:42 +0000
commit0a287b62e1cebef62bd88cb047816b4647e9839d (patch)
treed40e35ebaebc35b52df7cea6249954cfa32b6462 /eval
parent92d1eb1bd921e94e612f4ca7b8483882fe5368da (diff)
Add noexcept and some constexpr
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/fast_addr_map.h46
1 files changed, 23 insertions, 23 deletions
diff --git a/eval/src/vespa/eval/eval/fast_addr_map.h b/eval/src/vespa/eval/eval/fast_addr_map.h
index bda708b0945..442e0560b4b 100644
--- a/eval/src/vespa/eval/eval/fast_addr_map.h
+++ b/eval/src/vespa/eval/eval/fast_addr_map.h
@@ -20,13 +20,13 @@ class FastAddrMap
{
public:
// label extracting functions
- static constexpr string_id self(string_id label) { return label; }
- static constexpr string_id self(const string_id *label) { return *label; }
+ static constexpr string_id self(string_id label) noexcept { return label; }
+ static constexpr string_id self(const string_id *label) noexcept { return *label; }
// label hashing functions
- static constexpr uint32_t hash_label(string_id label) { return label.value(); }
- static constexpr uint32_t hash_label(const string_id *label) { return label->value(); }
- static constexpr uint32_t combine_label_hash(uint32_t full_hash, uint32_t next_hash) {
+ static constexpr uint32_t hash_label(string_id label) noexcept { return label.value(); }
+ static constexpr uint32_t hash_label(const string_id *label) noexcept { return label->value(); }
+ static constexpr uint32_t combine_label_hash(uint32_t full_hash, uint32_t next_hash) noexcept {
return ((full_hash * 31) + next_hash);
}
template <typename T>
@@ -41,9 +41,9 @@ public:
// typed uint32_t index used to identify sparse address/dense subspace
struct Tag {
uint32_t idx;
- static constexpr uint32_t npos() { return uint32_t(-1); }
- static constexpr Tag make_invalid() { return Tag{npos()}; }
- constexpr bool valid() const { return (idx != npos()); }
+ static constexpr uint32_t npos() noexcept { return uint32_t(-1); }
+ static constexpr Tag make_invalid() noexcept { return Tag{npos()}; }
+ constexpr bool valid() const noexcept { return (idx != npos()); }
};
// sparse hash set entry
@@ -62,9 +62,9 @@ public:
struct LabelView {
size_t addr_size;
const StringIdVector &labels;
- LabelView(size_t num_mapped_dims, const StringIdVector &labels_in)
+ LabelView(size_t num_mapped_dims, const StringIdVector &labels_in) noexcept
: addr_size(num_mapped_dims), labels(labels_in) {}
- ConstArrayRef<string_id> get_addr(size_t idx) const {
+ ConstArrayRef<string_id> get_addr(size_t idx) const noexcept {
return {labels.data() + (idx * addr_size), addr_size};
}
};
@@ -72,17 +72,17 @@ public:
// hashing functor for sparse hash set
struct Hash {
template <typename T>
- constexpr uint32_t operator()(const AltKey<T> &key) const { return key.hash; }
- constexpr uint32_t operator()(const Entry &entry) const { return entry.hash; }
- constexpr uint32_t operator()(string_id label) const { return label.value(); }
+ constexpr uint32_t operator()(const AltKey<T> &key) const noexcept { return key.hash; }
+ constexpr uint32_t operator()(const Entry &entry) const noexcept { return entry.hash; }
+ constexpr uint32_t operator()(string_id label) const noexcept { return label.value(); }
};
// equality functor for sparse hash set
struct Equal {
const LabelView &label_view;
- Equal(const LabelView &label_view_in) : label_view(label_view_in) {}
+ Equal(const LabelView &label_view_in) noexcept : label_view(label_view_in) {}
template <typename T>
- bool operator()(const Entry &a, const AltKey<T> &b) const {
+ bool operator()(const Entry &a, const AltKey<T> &b) const noexcept {
if (a.hash != b.hash) {
return false;
}
@@ -110,25 +110,25 @@ public:
FastAddrMap &operator=(const FastAddrMap &) = delete;
FastAddrMap(FastAddrMap &&) = delete;
FastAddrMap &operator=(FastAddrMap &&) = delete;
- static constexpr size_t npos() { return -1; }
- ConstArrayRef<string_id> get_addr(size_t idx) const { return _labels.get_addr(idx); }
- size_t size() const { return _map.size(); }
- constexpr size_t addr_size() const { return _labels.addr_size; }
- const StringIdVector &labels() const { return _labels.labels; }
+ static constexpr size_t npos() noexcept { return -1; }
+ ConstArrayRef<string_id> get_addr(size_t idx) const noexcept { return _labels.get_addr(idx); }
+ size_t size() const noexcept { return _map.size(); }
+ constexpr size_t addr_size() const noexcept { return _labels.addr_size; }
+ const StringIdVector &labels() const noexcept { return _labels.labels; }
template <typename T>
- size_t lookup(ConstArrayRef<T> addr, uint32_t hash) const {
+ size_t lookup(ConstArrayRef<T> addr, uint32_t hash) const noexcept {
// assert(addr_size() == addr.size());
AltKey<T> key{addr, hash};
auto pos = _map.find(key);
return (pos == _map.end()) ? npos() : pos->tag.idx;
}
- size_t lookup_singledim(string_id addr) const {
+ size_t lookup_singledim(string_id addr) const noexcept {
// assert(addr_size() == 1);
auto pos = _map.find(addr);
return (pos == _map.end()) ? npos() : pos->tag.idx;
}
template <typename T>
- size_t lookup(ConstArrayRef<T> addr) const {
+ size_t lookup(ConstArrayRef<T> addr) const noexcept {
return (addr.size() == 1)
? lookup_singledim(self(addr[0]))
: lookup(addr, hash_labels(addr));