Google OR-Tools
v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
model_util.cc
Go to the documentation of this file.
1
// Copyright 2010-2025 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
#include "
ortools/math_opt/constraints/util/model_util.h
"
15
16
#include <utility>
17
18
#include "
ortools/math_opt/cpp/variable_and_expressions.h
"
19
#include "
ortools/math_opt/storage/linear_expression_data.h
"
20
#include "
ortools/math_opt/storage/model_storage.h
"
21
#include "
ortools/math_opt/storage/sparse_coefficient_map.h
"
22
23
namespace
operations_research::math_opt
{
24
25
LinearExpression
ToLinearExpression
(
const
ModelStorage& storage,
26
const
LinearExpressionData
& expr_data) {
27
LinearExpression
expr = expr_data.
offset
;
28
for
(
const
auto
[var_id, coeff] : expr_data.
coeffs
.
terms
()) {
29
expr += coeff *
Variable
(&storage, var_id);
30
}
31
return
expr;
32
}
33
34
LinearExpressionData
FromLinearExpression
(
const
LinearExpression
& expression) {
35
SparseCoefficientMap
coeffs;
36
for
(
const
auto
[var, coeff] : expression.
terms
()) {
37
coeffs.
set
(var.typed_id(), coeff);
38
}
39
return
{.coeffs = std::move(coeffs), .offset = expression.
offset
()};
40
}
41
42
}
// namespace operations_research::math_opt
operations_research::math_opt::LinearExpression
Definition
variable_and_expressions.h:207
operations_research::math_opt::LinearExpression::offset
double offset() const
Definition
variable_and_expressions.h:1650
operations_research::math_opt::LinearExpression::terms
const VariableMap< double > & terms() const
Definition
variable_and_expressions.h:1648
operations_research::math_opt::SparseCoefficientMap
Definition
sparse_coefficient_map.h:33
operations_research::math_opt::SparseCoefficientMap::set
bool set(VariableId id, double coeff)
Definition
sparse_coefficient_map.h:81
operations_research::math_opt::SparseCoefficientMap::terms
const absl::flat_hash_map< VariableId, double > & terms() const
Definition
sparse_coefficient_map.h:46
operations_research::math_opt::Variable
Definition
variable_and_expressions.h:125
linear_expression_data.h
model_storage.h
model_util.h
operations_research::math_opt
Definition
gurobi_isv.cc:28
operations_research::math_opt::ToLinearExpression
LinearExpression ToLinearExpression(const ModelStorage &storage, const LinearExpressionData &expr_data)
Definition
model_util.cc:25
operations_research::math_opt::FromLinearExpression
LinearExpressionData FromLinearExpression(const LinearExpression &expression)
Definition
model_util.cc:34
sparse_coefficient_map.h
operations_research::math_opt::LinearExpressionData
Definition
linear_expression_data.h:29
operations_research::math_opt::LinearExpressionData::offset
double offset
Definition
linear_expression_data.h:37
operations_research::math_opt::LinearExpressionData::coeffs
SparseCoefficientMap coeffs
Definition
linear_expression_data.h:36
variable_and_expressions.h
ortools
math_opt
constraints
util
model_util.cc
Generated by
1.15.0