Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
integer_expr.h File Reference
#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <functional>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/attributes.h"
#include "absl/log/check.h"
#include "absl/log/log.h"
#include "absl/types/span.h"
#include "ortools/sat/enforcement.h"
#include "ortools/sat/enforcement_helper.h"
#include "ortools/sat/integer.h"
#include "ortools/sat/integer_base.h"
#include "ortools/sat/linear_constraint.h"
#include "ortools/sat/linear_propagation.h"
#include "ortools/sat/model.h"
#include "ortools/sat/old_precedences_propagator.h"
#include "ortools/sat/sat_base.h"
#include "ortools/sat/sat_parameters.pb.h"
#include "ortools/sat/sat_solver.h"
#include "ortools/util/strong_integers.h"
#include "ortools/util/time_limit.h"

Go to the source code of this file.

Classes

class  operations_research::sat::LinearConstraintPropagator< use_int128 >
class  operations_research::sat::LevelZeroEquality
class  operations_research::sat::MinPropagator
class  operations_research::sat::GreaterThanMinOfExprsPropagator
class  operations_research::sat::ProductPropagator
class  operations_research::sat::DivisionPropagator
class  operations_research::sat::FixedDivisionPropagator
class  operations_research::sat::FixedModuloPropagator
class  operations_research::sat::SquarePropagator

Namespaces

namespace  operations_research
 OR-Tools root namespace.
namespace  operations_research::sat

Typedefs

using operations_research::sat::IntegerSumLE = LinearConstraintPropagator<false>
using operations_research::sat::IntegerSumLE128 = LinearConstraintPropagator<true>

Functions

void operations_research::sat::AddWeightedSumLowerOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const IntegerValue > coefficients, int64_t upper_bound, Model *model)
void operations_research::sat::AddWeightedSumGreaterOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const IntegerValue > coefficients, int64_t lower_bound, Model *model)
template<typename VectorInt>
std::function< void(Model *)> operations_research::sat::WeightedSumLowerOrEqual (absl::Span< const IntegerVariable > vars, const VectorInt &coefficients, int64_t upper_bound)
template<typename VectorInt>
std::function< void(Model *)> operations_research::sat::WeightedSumGreaterOrEqual (absl::Span< const IntegerVariable > vars, const VectorInt &coefficients, int64_t lower_bound)
template<typename VectorInt>
std::function< void(Model *)> operations_research::sat::FixedWeightedSum (absl::Span< const IntegerVariable > vars, const VectorInt &coefficients, int64_t value)
std::function< void(Model *)> operations_research::sat::ConditionalWeightedSumLowerOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const int64_t > coefficients, int64_t upper_bound)
std::function< void(Model *)> operations_research::sat::ConditionalWeightedSumGreaterOrEqual (absl::Span< const Literal > enforcement_literals, absl::Span< const IntegerVariable > vars, absl::Span< const int64_t > coefficients, int64_t upper_bound)
void operations_research::sat::LoadConditionalLinearConstraint (const absl::Span< const Literal > enforcement_literals, const LinearConstraint &cst, Model *model)
void operations_research::sat::LoadLinearConstraint (const LinearConstraint &cst, Model *model)
void operations_research::sat::AddConditionalAffinePrecedence (const absl::Span< const Literal > enforcement_literals, AffineExpression left, AffineExpression right, Model *model)
template<typename VectorInt>
std::function< IntegerVariable(Model *)> operations_research::sat::NewWeightedSum (const VectorInt &coefficients, const std::vector< IntegerVariable > &vars)
void operations_research::sat::AddIsEqualToMinOf (const absl::Span< const Literal > enforcement_literals, const LinearExpression &min_expr, std::vector< LinearExpression > exprs, Model *model)
std::function< void(Model *)> operations_research::sat::IsEqualToMinOf (const LinearExpression &min_expr, const std::vector< LinearExpression > &exprs)
std::function< void(Model *)> operations_research::sat::ProductConstraint (absl::Span< const Literal > enforcement_literals, AffineExpression a, AffineExpression b, AffineExpression p)
std::function< void(Model *)> operations_research::sat::DivisionConstraint (absl::Span< const Literal > enforcement_literals, AffineExpression num, AffineExpression denom, AffineExpression div)
std::function< void(Model *)> operations_research::sat::FixedDivisionConstraint (absl::Span< const Literal > enforcement_literals, AffineExpression a, IntegerValue b, AffineExpression c)
std::function< void(Model *)> operations_research::sat::FixedModuloConstraint (absl::Span< const Literal > enforcement_literals, AffineExpression a, IntegerValue b, AffineExpression c)