diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 2ac343c0..1ad23b2c 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1 +1,2 @@ -add_subdirectory(image_processing_benchmarks) \ No newline at end of file +add_subdirectory(image_processing_benchmarks) +add_subdirectory(transform) diff --git a/benchmarks/transform/CMakeLists.txt b/benchmarks/transform/CMakeLists.txt new file mode 100644 index 00000000..e194640c --- /dev/null +++ b/benchmarks/transform/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(wavelet_benchmarks wavelet_benchmarks) +target_link_libraries(wavelet_benchmarks Catch2::Catch2) diff --git a/benchmarks/transform/wavelet_benchmarks.cpp b/benchmarks/transform/wavelet_benchmarks.cpp new file mode 100644 index 00000000..32096923 --- /dev/null +++ b/benchmarks/transform/wavelet_benchmarks.cpp @@ -0,0 +1,19 @@ +#define CATCH_CONFIG_MAIN + +#define CATCH_CONFIG_ENABLE_BENCHMARKING + +#include + +#include + +using T = double; + + +TEST_CASE("Daubechies matrix construction", "[transform][wavelet]") +{ + BENCHMARK("Daubechies matrix construction") + { + return wavelet::DaubechiesMat(48000, 2); + }; +} + diff --git a/modules/transform/wavelet.cpp b/modules/transform/wavelet.cpp index 1ed50d69..34d38b09 100644 --- a/modules/transform/wavelet.cpp +++ b/modules/transform/wavelet.cpp @@ -671,10 +671,10 @@ blaze::CompressedMatrix DaubechiesMat(size_t size, int order = 4) assert(order % 2 == 0); std::vector c(order); - T coeff = 2 / sqrt(2); + constexpr T coeff = 2 / sqrt(2); c = dbwavf>(order / 2, coeff); for (size_t i = 0; i < c.size(); ++i) { - c[i] = c[i] * coeff; + c[i] *= coeff; } auto mat = blaze::CompressedMatrix(size, size); @@ -685,7 +685,6 @@ blaze::CompressedMatrix DaubechiesMat(size_t size, int order = 4) if (ci > c.size()) { ci = 0; } - std::cout << "ci" << ci << std::endl; for (size_t a = 0; a < c.size(); ++a) { if (ci >= c.size()) { ci = ci % c.size(); @@ -697,7 +696,6 @@ blaze::CompressedMatrix DaubechiesMat(size_t size, int order = 4) } mat.append(i, j, c[ci]); - std::cout << i << " " << j << " " << ci << " " << c[ci] << std::endl; ++ci; } @@ -713,7 +711,6 @@ blaze::CompressedMatrix DaubechiesMat(size_t size, int order = 4) if (ci > c.size()) { ci = 0; } - std::cout << "ci" << ci << std::endl; for (size_t a = 0; a < c.size(); ++a) { if (ci >= c.size()) { ci = ci % c.size(); @@ -725,7 +722,6 @@ blaze::CompressedMatrix DaubechiesMat(size_t size, int order = 4) } mat.append(size / 2 + i, j, c[order - 1 - ci]); - std::cout << i << " " << j << " " << ci << " " << c[ci] << std::endl; ++ci; sign *= -1;