summaryrefslogtreecommitdiffstats
path: root/include/ds/BitArray.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ds/BitArray.h')
-rw-r--r--include/ds/BitArray.h67
1 files changed, 0 insertions, 67 deletions
diff --git a/include/ds/BitArray.h b/include/ds/BitArray.h
deleted file mode 100644
index 586561b..0000000
--- a/include/ds/BitArray.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * include/ds/BitArray.h
- *
- * Copyright (C) 2023 Dong Xie <dongx@psu.edu>
- *
- * All rights reserved. Published under the Modified BSD License.
- *
- */
-#pragma once
-
-#include <cstdlib>
-#include <memory>
-#include <cstring>
-
-#include "util/base.h"
-
-namespace de {
-
-class BitArray {
-public:
- BitArray(size_t bits): m_bits(bits), m_data(nullptr) {
- if (m_bits > 0) {
- size_t n_bytes = (m_bits >> 3) << 3;
- m_data = (char*) std::aligned_alloc(CACHELINE_SIZE, CACHELINEALIGN(n_bytes));
- memset(m_data, 0, n_bytes);
- }
- }
-
- ~BitArray() {
- if (m_data) free(m_data);
- }
-
- bool is_set(size_t bit) {
- if (bit >= m_bits) return false;
- return m_data[bit >> 3] & (1 << (bit & 7));
- }
-
- int set(size_t bit) {
- if (bit >= m_bits) return 0;
- m_data[bit >> 3] |= ((char) 1 << (bit & 7));
- return 1;
- }
-
- int unset(size_t bit) {
- if (bit >= m_bits) return 0;
- m_data[bit >> 3] &= ~((char) 1 << (bit & 7));
- return 1;
- }
-
- void clear() {
- memset(m_data, 0, (m_bits >> 3) << 3);
- }
-
- size_t mem_size() {
- return m_bits >> 3;
- }
-
- size_t size() {
- return m_bits;
- }
-
-private:
- size_t m_bits;
- char* m_data;
-};
-
-}