From d75a870e378591dd93e27f7b1a0c0d67db8058d2 Mon Sep 17 00:00:00 2001 From: froejdh_e Date: Tue, 22 Apr 2025 09:24:13 +0200 Subject: [PATCH] added helper function to make view of vector --- include/aare/NDView.hpp | 5 +++++ src/NDView.test.cpp | 12 ++++++++++++ src/decode.cpp | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/aare/NDView.hpp b/include/aare/NDView.hpp index 55b442b..ddb5d1c 100644 --- a/include/aare/NDView.hpp +++ b/include/aare/NDView.hpp @@ -184,4 +184,9 @@ std::ostream& operator <<(std::ostream& os, const NDView& arr){ } +template +NDView make_view(std::vector& vec){ + return NDView(vec.data(), {static_cast(vec.size())}); +} + } // namespace aare \ No newline at end of file diff --git a/src/NDView.test.cpp b/src/NDView.test.cpp index 3070de6..6bc8eef 100644 --- a/src/NDView.test.cpp +++ b/src/NDView.test.cpp @@ -190,4 +190,16 @@ TEST_CASE("compare two views") { NDView view2(vec2.data(), Shape<2>{3, 4}); REQUIRE((view1 == view2)); +} + + +TEST_CASE("Create a view over a vector"){ + std::vector vec; + for (int i = 0; i != 12; ++i) { + vec.push_back(i); + } + auto v = aare::make_view(vec); + REQUIRE(v.shape()[0] == 12); + REQUIRE(v[0] == 0); + REQUIRE(v[11] == 11); } \ No newline at end of file diff --git a/src/decode.cpp b/src/decode.cpp index a8c4a80..8ac7bc0 100644 --- a/src/decode.cpp +++ b/src/decode.cpp @@ -90,7 +90,7 @@ void apply_custom_weights(NDView input, NDView output, c // Apply custom weights to each element in the input array for (ssize_t i = 0; i < input.shape(0); i++) { double result = 0.0; - for (ssize_t bit_index = 0; bit_index < weights_powers.size(); ++bit_index) { + for (size_t bit_index = 0; bit_index < weights_powers.size(); ++bit_index) { result += ((input(i) >> bit_index) & 1) * weights_powers[bit_index]; } output(i) = result;