diff options
author | David Robillard <d@drobilla.net> | 2022-09-16 21:19:57 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-09-16 22:31:06 -0400 |
commit | 2e4d666eec1a372d4b64c527d6c4945ad98d2b58 (patch) | |
tree | a3a61d346c3d4e5b590b08db446d17307df0e3c5 /include/chilbert/BoundedBitVec.hpp | |
parent | bf05ef949750cfca6e001b0f767cd2173441fc8c (diff) | |
download | chilbert-2e4d666eec1a372d4b64c527d6c4945ad98d2b58.tar.gz chilbert-2e4d666eec1a372d4b64c527d6c4945ad98d2b58.tar.bz2 chilbert-2e4d666eec1a372d4b64c527d6c4945ad98d2b58.zip |
Update clang-format configuration
Diffstat (limited to 'include/chilbert/BoundedBitVec.hpp')
-rw-r--r-- | include/chilbert/BoundedBitVec.hpp | 112 |
1 files changed, 67 insertions, 45 deletions
diff --git a/include/chilbert/BoundedBitVec.hpp b/include/chilbert/BoundedBitVec.hpp index 4f9ef60..6fe5d2a 100644 --- a/include/chilbert/BoundedBitVec.hpp +++ b/include/chilbert/BoundedBitVec.hpp @@ -41,81 +41,103 @@ namespace chilbert { * * @tparam MaxN Maximum number of bits. */ -template <size_t MaxN> +template<size_t MaxN> class BoundedBitVec : public detail::MultiBitVec<BoundedBitVec<MaxN>> { public: - using Rack = typename detail::MultiBitVec<BoundedBitVec<MaxN>>::Rack; + using Rack = typename detail::MultiBitVec<BoundedBitVec<MaxN>>::Rack; - using detail::MultiBitVec<BoundedBitVec<MaxN>>::bits_per_rack; + using detail::MultiBitVec<BoundedBitVec<MaxN>>::bits_per_rack; - BoundedBitVec() = default; + BoundedBitVec() = default; - explicit BoundedBitVec(const size_t bits) - : m_size{bits} - { - assert(bits <= MaxN); - } + explicit BoundedBitVec(const size_t bits) + : m_size{bits} + { + assert(bits <= MaxN); + } - BoundedBitVec(const size_t bits, const Rack value) - : BoundedBitVec{bits} - { - m_racks[0] = value; - } + BoundedBitVec(const size_t bits, const Rack value) + : BoundedBitVec{bits} + { + m_racks[0] = value; + } - /// Return the size in bits - size_t size() const { return m_size; } + /// Return the size in bits + size_t size() const { return m_size; } - /// Return a reference to the `index`th rack + /// Return a reference to the `index`th rack #ifndef NDEBUG - const auto& rack(const size_t index) const { return m_racks.at(index); } - auto& rack(const size_t index) { return m_racks.at(index); } + const auto& rack(const size_t index) const + { + return m_racks.at(index); + } + auto& rack(const size_t index) + { + return m_racks.at(index); + } #else - const auto& rack(const size_t index) const { return m_racks[index]; } - auto& rack(const size_t index) { return m_racks[index]; } + const auto& rack(const size_t index) const + { + return m_racks[index]; + } + auto& rack(const size_t index) + { + return m_racks[index]; + } #endif - /// Return a raw pointer to the racks - Rack* data() { return m_racks.data(); } - const Rack* data() const { return m_racks.data(); } - - /// Return the total size of all racks in bytes - size_t data_size() const { return num_racks() * sizeof(Rack); } - - /// Return the number of racks - size_t num_racks() const { return calculate_num_racks(m_size); } + /// Return a raw pointer to the racks + Rack* data() + { + return m_racks.data(); + } + const Rack* data() const + { + return m_racks.data(); + } + + /// Return the total size of all racks in bytes + size_t data_size() const + { + return num_racks() * sizeof(Rack); + } + + /// Return the number of racks + size_t num_racks() const + { + return calculate_num_racks(m_size); + } private: - static constexpr size_t calculate_num_racks(const size_t bits) - { - return (std::max(bits, size_t(1)) + bits_per_rack - 1) / bits_per_rack; - } + static constexpr size_t calculate_num_racks(const size_t bits) + { + return (std::max(bits, size_t(1)) + bits_per_rack - 1) / bits_per_rack; + } - std::array<Rack, calculate_num_racks(MaxN)> m_racks{}; - size_t m_size{}; + std::array<Rack, calculate_num_racks(MaxN)> m_racks{}; + size_t m_size{}; }; namespace detail { -template <size_t MaxN> -struct is_bitvec<BoundedBitVec<MaxN>> -{ - constexpr static bool value = true; +template<size_t MaxN> +struct is_bitvec<BoundedBitVec<MaxN>> { + constexpr static bool value = true; }; -template <size_t MaxN> +template<size_t MaxN> void gray_code(BoundedBitVec<MaxN>& value) { - gray_code(static_cast<detail::MultiBitVec<BoundedBitVec<MaxN>>&>(value)); + gray_code(static_cast<detail::MultiBitVec<BoundedBitVec<MaxN>>&>(value)); } -template <size_t MaxN> +template<size_t MaxN> void gray_code_inv(BoundedBitVec<MaxN>& value) { - gray_code_inv( - static_cast<detail::MultiBitVec<BoundedBitVec<MaxN>>&>(value)); + gray_code_inv(static_cast<detail::MultiBitVec<BoundedBitVec<MaxN>>&>(value)); } } // namespace detail |