19#include "absl/status/statusor.h"
20#include "ortools/math_opt/callback.pb.h"
32#include "ortools/math_opt/infeasible_subsystem.pb.h"
41 .streamable = arguments.streamable.Proto(),
42 .non_streamable = arguments.non_streamable.get(),
47 const SolverInitArguments& arguments) {
48 return [arguments](
const SolverTypeProto solver_type, ModelProto
model,
49 SolveInterrupter*
const local_canceller)
50 -> absl::StatusOr<std::unique_ptr<BaseSolver>> {
56 ToSolverInitArgs(arguments));
67 solver_type, solve_args,
77 FactoryFromInitArguments(init_args),
model, solver_type, compute_args,
85 FactoryFromInitArguments(arguments),
model, solver_type,
SolverInterface::InitArgs InitArgs
static absl::StatusOr< std::unique_ptr< Solver > > New(SolverTypeProto solver_type, const ModelProto &model, const InitArgs &arguments)
static absl::StatusOr< std::unique_ptr< IncrementalSolverImpl > > New(BaseSolverFactory solver_factory, Model *model, SolverType solver_type, const SolveInterrupter *user_canceller, bool remove_names)
absl::StatusOr< ComputeInfeasibleSubsystemResult > ComputeInfeasibleSubsystemImpl(const BaseSolverFactory solver_factory, const Model &model, const SolverType solver_type, const ComputeInfeasibleSubsystemArguments &compute_args, const SolveInterrupter *const user_canceller, const bool remove_names)
absl::AnyInvocable< absl::StatusOr< std::unique_ptr< BaseSolver > >( SolverTypeProto solver_type, ModelProto model, SolveInterrupter *local_canceller) const > BaseSolverFactory
absl::StatusOr< SolveResult > SolveImpl(const BaseSolverFactory solver_factory, const Model &model, const SolverType solver_type, const SolveArguments &solve_args, const SolveInterrupter *const user_canceller, const bool remove_names)
SolverType
The solvers supported by MathOpt.
absl::StatusOr< SolveResult > Solve(const Model &model, const SolverType solver_type, const SolveArguments &solve_args, const SolverInitArguments &init_args)
absl::StatusOr< std::unique_ptr< IncrementalSolver > > NewIncrementalSolver(Model *model, SolverType solver_type, SolverInitArguments arguments)
absl::StatusOr< ComputeInfeasibleSubsystemResult > ComputeInfeasibleSubsystem(const Model &model, const SolverType solver_type, const ComputeInfeasibleSubsystemArguments &compute_args, const SolverInitArguments &init_args)
In SWIG mode, we don't want anything besides these top-level includes.
Arguments passed to ComputeInfeasibleSubsystem() to control the solver.