3 #ifndef FORPY_UTIL_CHECKS_H_ 4 #define FORPY_UTIL_CHECKS_H_ 12 #include "../global.h" 22 if (!std::is_arithmetic<T>()) {
27 "The safe_pos_sum_lessoe_than function can " 28 "only be called for arithmetic type vectors.");
30 T sum_so_far =
static_cast<T
>(0);
31 for (
size_t i = 0; i < vec.size(); ++i) {
32 if (vec[i] < static_cast<T>(0) || limit - vec[i] < sum_so_far) {
47 const std::vector<T> &vec2,
49 std::vector<T> joined;
50 joined.insert(joined.end(), vec1.begin(), vec1.end());
51 joined.insert(joined.end(), vec2.begin(), vec2.end());
70 const std::vector<T> &vec2) {
77 #pragma clang diagnostic push 78 #pragma clang diagnostic ignored "-Wunused-function" 80 const std::vector<size_t> &elem_ids) {
81 return elem_ids.end() ==
82 std::find_if(elem_ids.begin(), elem_ids.end(),
83 std::bind2nd(std::greater_equal<size_t>(), n_samples));
85 #pragma clang diagnostic pop 88 #endif // FORPY_UTIL_CHECKS_H_ static bool check_elem_ids_ok(const size_t &n_samples, const std::vector< size_t > &elem_ids)
Tests whether all element ids are valid.
static bool safe_pos_sum_lessoe_than(const std::vector< T > &vec, const T &limit)
Tests whether the sum of all elements in vec is less than limit.