Skip to content

Commit 125dea6

Browse files
authored
Add functions to check NaN values in data span (#178)
1 parent 3535564 commit 125dea6

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

include/svs/lib/misc.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,4 +443,20 @@ template <std::integral T> constexpr T bitmask(T lo, T hi) {
443443

444444
using DefaultPredicate = std::function<bool()>;
445445

446+
///
447+
/// Returns true if at least one element of the span is NaN.
448+
///
449+
template <typename T, size_t N>
450+
bool contains_nan(std::span<const T, N> data) {
451+
return std::any_of(data.begin(), data.end(), [](T v) { return std::isnan(v); });
452+
}
453+
454+
///
455+
/// Returns true if all elements of the span are NaN.
456+
///
457+
template <typename T, size_t N>
458+
bool all_nan(std::span<const T, N> data) {
459+
return std::all_of(data.begin(), data.end(), [](T v) { return std::isnan(v); });
460+
}
461+
446462
} // namespace svs::lib

0 commit comments

Comments
 (0)