Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions include/svs/lib/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -443,4 +443,20 @@ template <std::integral T> constexpr T bitmask(T lo, T hi) {

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

///
/// Returns true if at least one element of the span is NaN.
///
template <typename T, size_t N>
bool contains_nan(std::span<const T, N> data) {
return std::any_of(data.begin(), data.end(), [](T v) { return std::isnan(v); });
}

///
/// Returns true if all elements of the span are NaN.
///
template <typename T, size_t N>
bool all_nan(std::span<const T, N> data) {
return std::all_of(data.begin(), data.end(), [](T v) { return std::isnan(v); });
}

} // namespace svs::lib
Loading