16#ifndef OR_TOOLS_LP_DATA_LP_TYPES_H_
17#define OR_TOOLS_LP_DATA_LP_TYPES_H_
62#if defined(__ANDROID__)
68static inline double ToDouble(
double f) {
return f; }
70static inline double ToDouble(
long double f) {
return static_cast<double>(f); }
83const double kInfinity = std::numeric_limits<double>::infinity();
86const double kEpsilon = std::numeric_limits<double>::epsilon();
251template <
typename IntType,
typename T>
258#if !defined(__ANDROID__) && (!defined(_MSC_VER) || (_MSC_VER >= 1800))
265 template <
typename InputIteratorType>
355template <
typename EntryType>
371 return this->i_ < other.i_;
380 const double kConversionFactor = 2e-9;
381 return kConversionFactor *
static_cast<double>(n);
#define DCHECK_LE(val1, val2)
#define DCHECK_GE(val1, val2)
void assign(size_type n, const value_type &val)
void resize(size_type new_size)
void reserve(size_type n)
size_type capacity() const
std::vector< T, Alloc > ParentType
StrictITIVector(InputIteratorType first, InputIteratorType last)
StrictITIVector(IntType size)
void AssignToZero(IntType size)
void resize(IntType size)
StrictITIVector(std::initializer_list< T > init_list)
void resize(IntType size, const T &v)
void reserve(IntType size)
void resize_down(IntType size)
StrictITIVector(IntType size, const T &v)
void assign(IntType size, const T &v)
absl::StrongVector< IntType, T > ParentType
typename EntryType::Index Index
bool operator!=(const VectorIterator &other) const
VectorIterator(const Index *indices, const Fractional *coefficients, EntryIndex i)
const Entry & operator*() const
RowIndex ColToRowIndex(ColIndex col)
Bitset64< RowIndex > DenseBitColumn
bool IsFinite(Fractional value)
std::vector< ColIndex > ColIndexVector
static double DeterministicTimeForFpOperations(int64 n)
StrictITIVector< ColIndex, VariableType > VariableTypeRow
const ColIndex kInvalidCol(-1)
StrictITIVector< ColIndex, Fractional > DenseRow
std::string GetProblemStatusString(ProblemStatus problem_status)
std::string GetConstraintStatusString(ConstraintStatus status)
StrictITIVector< ColIndex, VariableStatus > VariableStatusRow
Index RowToIntIndex(RowIndex row)
static double ToDouble(double f)
std::ostream & operator<<(std::ostream &os, ProblemStatus status)
StrictITIVector< RowIndex, RowIndex > RowMapping
StrictITIVector< RowIndex, ConstraintStatus > ConstraintStatusColumn
Index ColToIntIndex(ColIndex col)
ColIndex RowToColIndex(RowIndex row)
Bitset64< ColIndex > DenseBitRow
ConstraintStatus VariableToConstraintStatus(VariableStatus status)
const RowIndex kInvalidRow(-1)
std::vector< RowIndex > RowIndexVector
StrictITIVector< ColIndex, bool > DenseBooleanRow
@ UPPER_AND_LOWER_BOUNDED
StrictITIVector< ColIndex, RowIndex > ColToRowMapping
StrictITIVector< RowIndex, ColIndex > RowToColMapping
std::string GetVariableTypeString(VariableType variable_type)
StrictITIVector< RowIndex, Fractional > DenseColumn
@ INFEASIBLE_OR_UNBOUNDED
DEFINE_INT_TYPE(ColIndex, Index)
StrictITIVector< RowIndex, bool > DenseBooleanColumn
std::string GetVariableStatusString(VariableStatus status)
StrictITIVector< ColIndex, ColIndex > ColMapping
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
std::vector< double > coefficients