|  | Google OR-Tools v9.14
    a fast and portable software suite for combinatorial optimization | 
#include "ortools/sat/cuts.h"#include <algorithm>#include <array>#include <cmath>#include <cstdint>#include <functional>#include <limits>#include <string>#include <tuple>#include <utility>#include <vector>#include "absl/base/attributes.h"#include "absl/container/btree_map.h"#include "absl/container/btree_set.h"#include "absl/container/flat_hash_map.h"#include "absl/container/flat_hash_set.h"#include "absl/log/check.h"#include "absl/log/log.h"#include "absl/log/vlog_is_on.h"#include "absl/meta/type_traits.h"#include "absl/numeric/int128.h"#include "absl/strings/str_cat.h"#include "absl/strings/string_view.h"#include "absl/types/span.h"#include "ortools/base/logging.h"#include "ortools/base/stl_util.h"#include "ortools/base/strong_vector.h"#include "ortools/lp_data/lp_types.h"#include "ortools/sat/clause.h"#include "ortools/sat/implied_bounds.h"#include "ortools/sat/integer.h"#include "ortools/sat/integer_base.h"#include "ortools/sat/linear_constraint.h"#include "ortools/sat/linear_constraint_manager.h"#include "ortools/sat/model.h"#include "ortools/sat/sat_base.h"#include "ortools/sat/synchronization.h"#include "ortools/util/saturated_arithmetic.h"#include "ortools/util/sorted_interval_list.h"#include "ortools/util/strong_integers.h"Go to the source code of this file.
| Namespaces | |
| namespace | operations_research | 
| In SWIG mode, we don't want anything besides these top-level includes. | |
| namespace | operations_research::sat | 
| Functions | |
| IntegerValue | operations_research::sat::GetFactorT (IntegerValue rhs_remainder, IntegerValue divisor, IntegerValue max_magnitude) | 
| std::function< IntegerValue(IntegerValue)> | operations_research::sat::GetSuperAdditiveRoundingFunction (IntegerValue rhs_remainder, IntegerValue divisor, IntegerValue t, IntegerValue max_scaling) | 
| std::function< IntegerValue(IntegerValue)> | operations_research::sat::GetSuperAdditiveStrengtheningFunction (IntegerValue positive_rhs, IntegerValue min_magnitude) | 
| std::function< IntegerValue(IntegerValue)> | operations_research::sat::GetSuperAdditiveStrengtheningMirFunction (IntegerValue positive_rhs, IntegerValue scaling) | 
| CutGenerator | operations_research::sat::CreatePositiveMultiplicationCutGenerator (AffineExpression z, AffineExpression x, AffineExpression y, int linearization_level, Model *model) | 
| A cut generator for z = x * y (x and y >= 0). | |
| LinearConstraint | operations_research::sat::ComputeHyperplanAboveSquare (AffineExpression x, AffineExpression square, IntegerValue x_lb, IntegerValue x_ub, Model *model) | 
| LinearConstraint | operations_research::sat::ComputeHyperplanBelowSquare (AffineExpression x, AffineExpression square, IntegerValue x_value, Model *model) | 
| CutGenerator | operations_research::sat::CreateSquareCutGenerator (AffineExpression y, AffineExpression x, int linearization_level, Model *model) | 
| CutGenerator | operations_research::sat::CreateAllDifferentCutGenerator (absl::Span< const AffineExpression > exprs, Model *model) | 
| CutGenerator | operations_research::sat::CreateLinMaxCutGenerator (const IntegerVariable target, absl::Span< const LinearExpression > exprs, absl::Span< const IntegerVariable > z_vars, Model *model) | 
| bool | operations_research::sat::BuildMaxAffineUpConstraint (const LinearExpression &target, IntegerVariable var, absl::Span< const std::pair< IntegerValue, IntegerValue > > affines, Model *model, LinearConstraintBuilder *builder) | 
| CutGenerator | operations_research::sat::CreateMaxAffineCutGenerator (LinearExpression target, IntegerVariable var, std::vector< std::pair< IntegerValue, IntegerValue > > affines, const std::string cut_name, Model *model) | 
| CutGenerator | operations_research::sat::CreateCliqueCutGenerator (absl::Span< const IntegerVariable > base_variables, Model *model) |