Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
model_storage_types.h
Go to the documentation of this file.
1// Copyright 2010-2024 Google LLC
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14// IWYU pragma: private, include "ortools/math_opt/cpp/math_opt.h"
15// IWYU pragma: friend "ortools/math_opt/cpp/.*"
16
17#ifndef OR_TOOLS_MATH_OPT_STORAGE_MODEL_STORAGE_TYPES_H_
18#define OR_TOOLS_MATH_OPT_STORAGE_MODEL_STORAGE_TYPES_H_
19
20#include <cstdint>
21#include <optional>
22
23#include "absl/strings/string_view.h"
25
27
28DEFINE_STRONG_INT_TYPE(VariableId, int64_t);
29DEFINE_STRONG_INT_TYPE(AuxiliaryObjectiveId, int64_t);
30// nullopt denotes the primary objective.
31using ObjectiveId = std::optional<AuxiliaryObjectiveId>;
33 std::nullopt; // NOLINT: Used by dependencies
34DEFINE_STRONG_INT_TYPE(LinearConstraintId, int64_t);
35DEFINE_STRONG_INT_TYPE(QuadraticConstraintId, int64_t);
36DEFINE_STRONG_INT_TYPE(SecondOrderConeConstraintId, int64_t);
37DEFINE_STRONG_INT_TYPE(Sos1ConstraintId, int64_t);
38DEFINE_STRONG_INT_TYPE(Sos2ConstraintId, int64_t);
39DEFINE_STRONG_INT_TYPE(IndicatorConstraintId, int64_t);
40DEFINE_STRONG_INT_TYPE(UpdateTrackerId, int64_t);
41
42} // namespace operations_research::math_opt
43
44#endif // OR_TOOLS_MATH_OPT_STORAGE_MODEL_STORAGE_TYPES_H_
An object oriented wrapper for quadratic constraints in ModelStorage.
Definition gurobi_isv.cc:28
constexpr ObjectiveId kPrimaryObjectiveId
std::optional< AuxiliaryObjectiveId > ObjectiveId
nullopt denotes the primary objective.
#define DEFINE_STRONG_INT_TYPE(int_type_name, value_type)
Definition strong_int.h:168