From 8cc822678b1b083008f2405e94075fa9cd65b859 Mon Sep 17 00:00:00 2001 From: Vitaly Yulis Date: Sun, 8 Sep 2024 13:50:41 +0300 Subject: [PATCH] Add `dsplib/assert.h` header. Remove `dsplib/throw.h`. --- include/dsplib.h | 1 + include/dsplib/array.h | 2 +- include/dsplib/assert.h | 44 +++++++++++++++++++++++++++++ include/dsplib/slice.h | 2 +- include/dsplib/throw.h | 36 ----------------------- lib/agc.cpp | 1 - lib/corr.cpp | 2 ++ lib/fft/czt.cpp | 1 - lib/fft/pow2-fft.cpp | 1 - lib/fft/primes-fft.h | 1 - lib/hilbert.cpp | 3 +- lib/lru-cache.h | 2 -- lib/math.cpp | 1 - lib/medfilt.cpp | 1 - lib/resample/fir-decimator.cpp | 1 - lib/resample/fir-rate-converter.cpp | 1 - lib/snr.cpp | 1 - lib/spectrum.cpp | 1 - 18 files changed, 50 insertions(+), 52 deletions(-) create mode 100644 include/dsplib/assert.h delete mode 100644 include/dsplib/throw.h diff --git a/include/dsplib.h b/include/dsplib.h index d48e08e..bc8e1e7 100644 --- a/include/dsplib.h +++ b/include/dsplib.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include diff --git a/include/dsplib/array.h b/include/dsplib/array.h index a5021ec..734ce11 100644 --- a/include/dsplib/array.h +++ b/include/dsplib/array.h @@ -7,7 +7,7 @@ #include #include #include -#include +#include namespace dsplib { diff --git a/include/dsplib/assert.h b/include/dsplib/assert.h new file mode 100644 index 0000000..d6da094 --- /dev/null +++ b/include/dsplib/assert.h @@ -0,0 +1,44 @@ +#pragma once + +#include +#include + +#ifdef DSPLIB_NO_EXCEPTIONS + +#include + +//TODO: add filename to message +#define DSPLIB_THROW(MSG) \ + std::cerr << (std::string("dsplib: ") + MSG) << std::endl; \ + std::abort(); + +#else + +#include + +#define DSPLIB_THROW(MSG) throw std::runtime_error(std::string("dsplib: ") + MSG); + +#endif + +#define DSPLIB_ASSERT(condition, message) \ + if (!(condition)) { \ + DSPLIB_THROW(message); \ + } + +#ifdef _MSC_VER +#define DSPLIB_ASSUME(cond) \ + assert(cond); \ + __assume(cond); +#elif defined(__clang__) +#define DSPLIB_ASSUME(cond) \ + assert(cond); \ + __builtin_assume(cond) +#elif defined(__GNUC__) +#define DSPLIB_ASSUME(cond) \ + assert(cond); \ + ((cond) ? static_cast(0) : __builtin_unreachable()); +#else +#define DSPLIB_ASSUME(cond) \ + assert(cond); \ + static_cast((cond) ? 0 : 0); +#endif \ No newline at end of file diff --git a/include/dsplib/slice.h b/include/dsplib/slice.h index c387ccd..5e2aa9a 100644 --- a/include/dsplib/slice.h +++ b/include/dsplib/slice.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include namespace dsplib { diff --git a/include/dsplib/throw.h b/include/dsplib/throw.h deleted file mode 100644 index 3581d7f..0000000 --- a/include/dsplib/throw.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once - -#include - -#ifdef DSPLIB_NO_EXCEPTIONS - -#include - -//TODO: add filename to message -#define DSPLIB_THROW(MSG) \ - std::cerr << (std::string("dsplib: ") + MSG) << std::endl; \ - std::abort(); - -#else - -#include - -#define DSPLIB_THROW(MSG) throw std::runtime_error(std::string("dsplib: ") + std::string(MSG)); - -#endif - -#define DSPLIB_ASSERT(condition, message) \ - if (!(condition)) { \ - DSPLIB_THROW(message); \ - } - -//TODO: add assert for cond -#ifdef _MSC_VER -#define DSPLIB_ASSUME(cond) __assume(cond) -#elif defined(__clang__) -#define DSPLIB_ASSUME(cond) __builtin_assume(cond) -#elif defined(__GNUC__) -#define DSPLIB_ASSUME(cond) ((cond) ? static_cast(0) : __builtin_unreachable()) -#else -#define DSPLIB_ASSUME(cond) static_cast(!!(cond)) -#endif \ No newline at end of file diff --git a/lib/agc.cpp b/lib/agc.cpp index 9f6d044..9d505e4 100644 --- a/lib/agc.cpp +++ b/lib/agc.cpp @@ -2,7 +2,6 @@ #include #include -#include "dsplib/throw.h" #include "ma-filter.h" namespace dsplib { diff --git a/lib/corr.cpp b/lib/corr.cpp index b959073..585cc44 100644 --- a/lib/corr.cpp +++ b/lib/corr.cpp @@ -81,6 +81,8 @@ real_t corr(const arr_real& x, const arr_real& y, Correlation type) { return _spearman_corr(x, y); case Correlation::Kendall: return _kendall_corr(x, y); + default: + return 0; } } diff --git a/lib/fft/czt.cpp b/lib/fft/czt.cpp index 731fcca..02d95a0 100644 --- a/lib/fft/czt.cpp +++ b/lib/fft/czt.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include diff --git a/lib/fft/pow2-fft.cpp b/lib/fft/pow2-fft.cpp index 373e743..f32bc1b 100644 --- a/lib/fft/pow2-fft.cpp +++ b/lib/fft/pow2-fft.cpp @@ -1,7 +1,6 @@ #include "fft/pow2-fft.h" #include -#include #include #include diff --git a/lib/fft/primes-fft.h b/lib/fft/primes-fft.h index 38d195b..9236b54 100644 --- a/lib/fft/primes-fft.h +++ b/lib/fft/primes-fft.h @@ -3,7 +3,6 @@ #include "dsplib/czt.h" #include "dsplib/fft.h" #include "dsplib/math.h" -#include "dsplib/throw.h" #include "dsplib/utils.h" #include diff --git a/lib/hilbert.cpp b/lib/hilbert.cpp index b182970..c1861a4 100644 --- a/lib/hilbert.cpp +++ b/lib/hilbert.cpp @@ -1,6 +1,5 @@ -#include -#include #include +#include #include #include #include diff --git a/lib/lru-cache.h b/lib/lru-cache.h index d45eab9..bf27b7d 100644 --- a/lib/lru-cache.h +++ b/lib/lru-cache.h @@ -5,8 +5,6 @@ #include #include -#include - namespace dsplib { template diff --git a/lib/math.cpp b/lib/math.cpp index 0a53897..3149c85 100644 --- a/lib/math.cpp +++ b/lib/math.cpp @@ -1,7 +1,6 @@ #include "dsplib/array.h" #include "dsplib/keywords.h" #include "dsplib/math.h" -#include "dsplib/throw.h" #include "dsplib/types.h" #include "dsplib/utils.h" diff --git a/lib/medfilt.cpp b/lib/medfilt.cpp index aa2501a..192d741 100644 --- a/lib/medfilt.cpp +++ b/lib/medfilt.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include diff --git a/lib/resample/fir-decimator.cpp b/lib/resample/fir-decimator.cpp index 32878b8..9600f57 100644 --- a/lib/resample/fir-decimator.cpp +++ b/lib/resample/fir-decimator.cpp @@ -1,5 +1,4 @@ #include "dsplib/resample.h" -#include "dsplib/throw.h" namespace dsplib { diff --git a/lib/resample/fir-rate-converter.cpp b/lib/resample/fir-rate-converter.cpp index 8b2b066..afcb1f3 100644 --- a/lib/resample/fir-rate-converter.cpp +++ b/lib/resample/fir-rate-converter.cpp @@ -1,5 +1,4 @@ #include "dsplib/resample.h" -#include "dsplib/throw.h" #include diff --git a/lib/snr.cpp b/lib/snr.cpp index 253154f..6bce211 100644 --- a/lib/snr.cpp +++ b/lib/snr.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include diff --git a/lib/spectrum.cpp b/lib/spectrum.cpp index 676e19f..32a4e1e 100644 --- a/lib/spectrum.cpp +++ b/lib/spectrum.cpp @@ -3,7 +3,6 @@ #include "dsplib/fft.h" #include "dsplib/keywords.h" #include "dsplib/math.h" -#include "dsplib/throw.h" #include "dsplib/utils.h" #include "dsplib/window.h"