14 #ifndef OR_TOOLS_MATH_OPT_VALIDATORS_SPARSE_VECTOR_VALIDATOR_H_
15 #define OR_TOOLS_MATH_OPT_VALIDATORS_SPARSE_VECTOR_VALIDATOR_H_
16 #include <type_traits>
18 #include "absl/status/status.h"
19 #include "absl/strings/str_cat.h"
20 #include "absl/strings/string_view.h"
31 absl::string_view value_name =
"values") {
33 return absl::InvalidArgumentError(absl::StrCat(
34 "Ids size= ", vector_view.
ids_size(),
" should be equal to ",
37 return absl::OkStatus();
43 absl::string_view value_name =
"values") {
45 return absl::OkStatus();
51 absl::string_view value_name =
"values") {
54 return absl::OkStatus();
61 absl::string_view value_name =
"values") {
63 for (
int i = 0, length = vector_view.
values_size(); i < length; ++i) {
65 << absl::StrCat(
" in: ", value_name,
" for id: ", vector_view.
ids(i),
66 " (at index: ", i,
")");
68 return absl::OkStatus();
75 absl::string_view value_name =
"values") {
78 return absl::OkStatus();
#define RETURN_IF_ERROR(expr)
absl::Span< const T > values() const
absl::Span< const int64_t > ids() const
absl::Status CheckIdsAndValuesSize(const SparseVectorView< T > &vector_view, absl::string_view value_name="values")
absl::Status CheckScalar(const double value, const DoubleOptions &options)
absl::Status CheckValues(const SparseVectorView< T > &vector_view, absl::string_view value_name="values")
absl::Status CheckIdsRangeAndStrictlyIncreasing(absl::Span< const int64_t > ids)
absl::Status CheckIdsAndValues(const SparseVectorView< T > &vector_view, absl::string_view value_name="values")
Collection of objects used to extend the Constraint Solver library.