20#include "absl/status/status.h"
21#include "absl/strings/str_cat.h"
26constexpr double kInf = std::numeric_limits<double>::infinity();
30 if (!std::isfinite(d)) {
31 return absl::InvalidArgumentError(
32 absl::StrCat(
"Expected no NaN or inf but found value: ", d));
34 return absl::OkStatus();
38 if (std::isnan(
value)) {
39 return absl::InvalidArgumentError(
"Invalid NaN value");
42 return absl::InvalidArgumentError(
"Invalid positive infinite value");
45 return absl::InvalidArgumentError(
"Invalid negative infinite value");
48 return absl::InvalidArgumentError(
49 absl::StrCat(
"Invalid positive value = ",
value));
52 return absl::InvalidArgumentError(
53 absl::StrCat(
"Invalid negative value = ",
value));
55 return absl::OkStatus();
absl::Status CheckScalar(const double value, const DoubleOptions &options)
absl::Status CheckScalarNoNanNoInf(const double d)
Collection of objects used to extend the Constraint Solver library.
bool allow_positive_infinity
bool allow_negative_infinity