14#ifndef OR_TOOLS_MATH_OPT_SOLVERS_GSCIP_GSCIP_SOLVER_CONSTRAINT_HANDLER_H_
15#define OR_TOOLS_MATH_OPT_SOLVERS_GSCIP_GSCIP_SOLVER_CONSTRAINT_HANDLER_H_
21#include "absl/status/status.h"
22#include "absl/status/statusor.h"
23#include "absl/time/time.h"
30#include "scip/type_var.h"
61 absl::StatusOr<GScipCallbackResult> EnforceLp(
64 bool solution_infeasible)
override;
66 absl::StatusOr<bool> CheckIsFeasible(
69 bool check_lp_rows,
bool print_reason,
bool check_completely)
override;
71 absl::StatusOr<GScipCallbackResult> SeparateLp(
75 absl::StatusOr<GScipCallbackResult> SeparateSolution(
79 std::vector<std::pair<SCIP_VAR*, RoundingLockDirection>> RoundingLock(
81 bool lock_type_is_model)
override;
84 absl::StatusOr<CallbackDataProto> MakeCbData(
92 absl::StatusOr<GScipCallbackResult> ApplyCallback(
GScipConstraintHandler(const GScipConstraintHandlerProperties &properties)
GScipSolverConstraintHandler()
std::function< absl::StatusOr< CallbackResultProto >( const CallbackDataProto &)> Callback
An object oriented wrapper for quadratic constraints in ModelStorage.
ConstraintHandlerCallbackType
SolverInterface::Callback user_callback
absl::Status Validate() const
const SparseVectorFilterProto * variable_solution_filter
bool adds_lazy_constraints
void SetWhenRunAndAdds(const CallbackRegistrationProto ®istration)
GScip::Interrupter * interrupter
const gtl::linked_hash_map< int64_t, SCIP_VAR * > * variables
absl::Time solve_start_time
const SparseVectorFilterProto * variable_node_filter