OR-Tools  9.1
parameters.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/glop/parameters.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_ortools_2fglop_2fparameters_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_ortools_2fglop_2fparameters_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3017000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3017003 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/metadata_lite.h>
29 #include <google/protobuf/generated_message_reflection.h>
30 #include <google/protobuf/message.h>
31 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
32 #include <google/protobuf/extension_set.h> // IWYU pragma: export
33 #include <google/protobuf/generated_enum_reflection.h>
34 #include <google/protobuf/unknown_field_set.h>
35 // @@protoc_insertion_point(includes)
36 #include <google/protobuf/port_def.inc>
37 #define PROTOBUF_INTERNAL_EXPORT_ortools_2fglop_2fparameters_2eproto
38 PROTOBUF_NAMESPACE_OPEN
39 namespace internal {
40 class AnyMetadata;
41 } // namespace internal
42 PROTOBUF_NAMESPACE_CLOSE
43 
44 // Internal implementation detail -- do not use these members.
46  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
47  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
48  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
49  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
50  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
51  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
52  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
53  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
54  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
55 };
56 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto;
57 namespace operations_research {
58 namespace glop {
59 class GlopParameters;
60 struct GlopParametersDefaultTypeInternal;
61 extern GlopParametersDefaultTypeInternal _GlopParameters_default_instance_;
62 } // namespace glop
63 } // namespace operations_research
64 PROTOBUF_NAMESPACE_OPEN
65 template<> ::operations_research::glop::GlopParameters* Arena::CreateMaybeMessage<::operations_research::glop::GlopParameters>(Arena*);
66 PROTOBUF_NAMESPACE_CLOSE
67 namespace operations_research {
68 namespace glop {
69 
74 };
79 
80 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* GlopParameters_ScalingAlgorithm_descriptor();
81 template<typename T>
82 inline const std::string& GlopParameters_ScalingAlgorithm_Name(T enum_t_value) {
85  "Incorrect type passed to function GlopParameters_ScalingAlgorithm_Name.");
86  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
88 }
90  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_ScalingAlgorithm* value) {
91  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<GlopParameters_ScalingAlgorithm>(
93 }
98 };
103 
104 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* GlopParameters_SolverBehavior_descriptor();
105 template<typename T>
106 inline const std::string& GlopParameters_SolverBehavior_Name(T enum_t_value) {
109  "Incorrect type passed to function GlopParameters_SolverBehavior_Name.");
110  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
112 }
114  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_SolverBehavior* value) {
115  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<GlopParameters_SolverBehavior>(
117 }
122 };
127 
128 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* GlopParameters_PricingRule_descriptor();
129 template<typename T>
130 inline const std::string& GlopParameters_PricingRule_Name(T enum_t_value) {
133  "Incorrect type passed to function GlopParameters_PricingRule_Name.");
134  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
135  GlopParameters_PricingRule_descriptor(), enum_t_value);
136 }
138  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_PricingRule* value) {
139  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<GlopParameters_PricingRule>(
141 }
147 };
152 
153 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* GlopParameters_InitialBasisHeuristic_descriptor();
154 template<typename T>
155 inline const std::string& GlopParameters_InitialBasisHeuristic_Name(T enum_t_value) {
158  "Incorrect type passed to function GlopParameters_InitialBasisHeuristic_Name.");
159  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
161 }
163  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_InitialBasisHeuristic* value) {
164  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<GlopParameters_InitialBasisHeuristic>(
166 }
172 };
177 
178 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* GlopParameters_CostScalingAlgorithm_descriptor();
179 template<typename T>
180 inline const std::string& GlopParameters_CostScalingAlgorithm_Name(T enum_t_value) {
183  "Incorrect type passed to function GlopParameters_CostScalingAlgorithm_Name.");
184  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
186 }
188  ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_CostScalingAlgorithm* value) {
189  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<GlopParameters_CostScalingAlgorithm>(
191 }
192 // ===================================================================
193 
194 class GlopParameters final :
195  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.glop.GlopParameters) */ {
196  public:
197  inline GlopParameters() : GlopParameters(nullptr) {}
198  ~GlopParameters() override;
199  explicit constexpr GlopParameters(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
200 
201  GlopParameters(const GlopParameters& from);
203  : GlopParameters() {
204  *this = ::std::move(from);
205  }
206 
207  inline GlopParameters& operator=(const GlopParameters& from) {
208  CopyFrom(from);
209  return *this;
210  }
211  inline GlopParameters& operator=(GlopParameters&& from) noexcept {
212  if (this == &from) return *this;
213  if (GetOwningArena() == from.GetOwningArena()) {
214  InternalSwap(&from);
215  } else {
216  CopyFrom(from);
217  }
218  return *this;
219  }
220 
221  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
222  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
223  }
224  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
225  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
226  }
227 
228  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
229  return GetDescriptor();
230  }
231  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
232  return default_instance().GetMetadata().descriptor;
233  }
234  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
235  return default_instance().GetMetadata().reflection;
236  }
238  return *internal_default_instance();
239  }
240  static inline const GlopParameters* internal_default_instance() {
241  return reinterpret_cast<const GlopParameters*>(
243  }
244  static constexpr int kIndexInFileMessages =
245  0;
246 
248  a.Swap(&b);
249  }
250  inline void Swap(GlopParameters* other) {
251  if (other == this) return;
252  if (GetOwningArena() == other->GetOwningArena()) {
253  InternalSwap(other);
254  } else {
255  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
256  }
257  }
259  if (other == this) return;
260  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
261  InternalSwap(other);
262  }
263 
264  // implements Message ----------------------------------------------
265 
266  inline GlopParameters* New() const final {
267  return new GlopParameters();
268  }
269 
270  GlopParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
271  return CreateMaybeMessage<GlopParameters>(arena);
272  }
273  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
274  void CopyFrom(const GlopParameters& from);
275  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
276  void MergeFrom(const GlopParameters& from);
277  private:
278  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
279  public:
280  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
281  bool IsInitialized() const final;
282 
283  size_t ByteSizeLong() const final;
284  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
285  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
286  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
287  int GetCachedSize() const final { return _cached_size_.Get(); }
288 
289  private:
290  void SharedCtor();
291  void SharedDtor();
292  void SetCachedSize(int size) const final;
293  void InternalSwap(GlopParameters* other);
294  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
295  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
296  return "operations_research.glop.GlopParameters";
297  }
298  protected:
299  explicit GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
300  bool is_message_owned = false);
301  private:
302  static void ArenaDtor(void* object);
303  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
304  public:
305 
306  static const ClassData _class_data_;
307  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
308 
309  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
310 
311  // nested types ----------------------------------------------------
312 
314  static constexpr ScalingAlgorithm DEFAULT =
316  static constexpr ScalingAlgorithm EQUILIBRATION =
318  static constexpr ScalingAlgorithm LINEAR_PROGRAM =
320  static inline bool ScalingAlgorithm_IsValid(int value) {
322  }
327  static constexpr int ScalingAlgorithm_ARRAYSIZE =
329  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
332  }
333  template<typename T>
334  static inline const std::string& ScalingAlgorithm_Name(T enum_t_value) {
337  "Incorrect type passed to function ScalingAlgorithm_Name.");
338  return GlopParameters_ScalingAlgorithm_Name(enum_t_value);
339  }
340  static inline bool ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
343  }
344 
346  static constexpr SolverBehavior ALWAYS_DO =
348  static constexpr SolverBehavior NEVER_DO =
352  static inline bool SolverBehavior_IsValid(int value) {
354  }
359  static constexpr int SolverBehavior_ARRAYSIZE =
361  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
364  }
365  template<typename T>
366  static inline const std::string& SolverBehavior_Name(T enum_t_value) {
367  static_assert(::std::is_same<T, SolverBehavior>::value ||
369  "Incorrect type passed to function SolverBehavior_Name.");
370  return GlopParameters_SolverBehavior_Name(enum_t_value);
371  }
372  static inline bool SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
375  }
376 
378  static constexpr PricingRule DANTZIG =
380  static constexpr PricingRule STEEPEST_EDGE =
382  static constexpr PricingRule DEVEX =
384  static inline bool PricingRule_IsValid(int value) {
386  }
387  static constexpr PricingRule PricingRule_MIN =
389  static constexpr PricingRule PricingRule_MAX =
391  static constexpr int PricingRule_ARRAYSIZE =
393  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
396  }
397  template<typename T>
398  static inline const std::string& PricingRule_Name(T enum_t_value) {
399  static_assert(::std::is_same<T, PricingRule>::value ||
401  "Incorrect type passed to function PricingRule_Name.");
402  return GlopParameters_PricingRule_Name(enum_t_value);
403  }
404  static inline bool PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
405  PricingRule* value) {
407  }
408 
410  static constexpr InitialBasisHeuristic NONE =
412  static constexpr InitialBasisHeuristic BIXBY =
416  static constexpr InitialBasisHeuristic MAROS =
418  static inline bool InitialBasisHeuristic_IsValid(int value) {
420  }
425  static constexpr int InitialBasisHeuristic_ARRAYSIZE =
427  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
430  }
431  template<typename T>
432  static inline const std::string& InitialBasisHeuristic_Name(T enum_t_value) {
435  "Incorrect type passed to function InitialBasisHeuristic_Name.");
436  return GlopParameters_InitialBasisHeuristic_Name(enum_t_value);
437  }
438  static inline bool InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
441  }
442 
452  static inline bool CostScalingAlgorithm_IsValid(int value) {
454  }
459  static constexpr int CostScalingAlgorithm_ARRAYSIZE =
461  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
464  }
465  template<typename T>
466  static inline const std::string& CostScalingAlgorithm_Name(T enum_t_value) {
469  "Incorrect type passed to function CostScalingAlgorithm_Name.");
470  return GlopParameters_CostScalingAlgorithm_Name(enum_t_value);
471  }
472  static inline bool CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
475  }
476 
477  // accessors -------------------------------------------------------
478 
479  enum : int {
533  };
534  // optional bool use_dual_simplex = 31 [default = false];
535  bool has_use_dual_simplex() const;
536  private:
537  bool _internal_has_use_dual_simplex() const;
538  public:
539  void clear_use_dual_simplex();
540  bool use_dual_simplex() const;
541  void set_use_dual_simplex(bool value);
542  private:
543  bool _internal_use_dual_simplex() const;
544  void _internal_set_use_dual_simplex(bool value);
545  public:
546 
547  // optional bool allow_simplex_algorithm_change = 32 [default = false];
549  private:
550  bool _internal_has_allow_simplex_algorithm_change() const;
551  public:
553  bool allow_simplex_algorithm_change() const;
555  private:
556  bool _internal_allow_simplex_algorithm_change() const;
557  void _internal_set_allow_simplex_algorithm_change(bool value);
558  public:
559 
560  // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
562  private:
563  bool _internal_has_perturb_costs_in_dual_simplex() const;
564  public:
566  bool perturb_costs_in_dual_simplex() const;
568  private:
569  bool _internal_perturb_costs_in_dual_simplex() const;
570  void _internal_set_perturb_costs_in_dual_simplex(bool value);
571  public:
572 
573  // optional bool log_search_progress = 61 [default = false];
574  bool has_log_search_progress() const;
575  private:
576  bool _internal_has_log_search_progress() const;
577  public:
579  bool log_search_progress() const;
580  void set_log_search_progress(bool value);
581  private:
582  bool _internal_log_search_progress() const;
583  void _internal_set_log_search_progress(bool value);
584  public:
585 
586  // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
587  bool has_feasibility_rule() const;
588  private:
589  bool _internal_has_feasibility_rule() const;
590  public:
591  void clear_feasibility_rule();
594  private:
595  ::operations_research::glop::GlopParameters_PricingRule _internal_feasibility_rule() const;
596  void _internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value);
597  public:
598 
599  // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
600  bool has_optimization_rule() const;
601  private:
602  bool _internal_has_optimization_rule() const;
603  public:
607  private:
608  ::operations_research::glop::GlopParameters_PricingRule _internal_optimization_rule() const;
609  void _internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value);
610  public:
611 
612  // optional double refactorization_threshold = 6 [default = 1e-09];
613  bool has_refactorization_threshold() const;
614  private:
615  bool _internal_has_refactorization_threshold() const;
616  public:
618  double refactorization_threshold() const;
620  private:
621  double _internal_refactorization_threshold() const;
622  void _internal_set_refactorization_threshold(double value);
623  public:
624 
625  // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
627  private:
628  bool _internal_has_recompute_reduced_costs_threshold() const;
629  public:
631  double recompute_reduced_costs_threshold() const;
633  private:
634  double _internal_recompute_reduced_costs_threshold() const;
635  void _internal_set_recompute_reduced_costs_threshold(double value);
636  public:
637 
638  // optional double recompute_edges_norm_threshold = 9 [default = 100];
640  private:
641  bool _internal_has_recompute_edges_norm_threshold() const;
642  public:
644  double recompute_edges_norm_threshold() const;
646  private:
647  double _internal_recompute_edges_norm_threshold() const;
648  void _internal_set_recompute_edges_norm_threshold(double value);
649  public:
650 
651  // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
653  private:
654  bool _internal_has_primal_feasibility_tolerance() const;
655  public:
657  double primal_feasibility_tolerance() const;
659  private:
660  double _internal_primal_feasibility_tolerance() const;
661  void _internal_set_primal_feasibility_tolerance(double value);
662  public:
663 
664  // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
665  bool has_dual_feasibility_tolerance() const;
666  private:
667  bool _internal_has_dual_feasibility_tolerance() const;
668  public:
670  double dual_feasibility_tolerance() const;
672  private:
673  double _internal_dual_feasibility_tolerance() const;
674  void _internal_set_dual_feasibility_tolerance(double value);
675  public:
676 
677  // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
678  bool has_ratio_test_zero_threshold() const;
679  private:
680  bool _internal_has_ratio_test_zero_threshold() const;
681  public:
683  double ratio_test_zero_threshold() const;
685  private:
686  double _internal_ratio_test_zero_threshold() const;
687  void _internal_set_ratio_test_zero_threshold(double value);
688  public:
689 
690  // optional double harris_tolerance_ratio = 13 [default = 0.5];
691  bool has_harris_tolerance_ratio() const;
692  private:
693  bool _internal_has_harris_tolerance_ratio() const;
694  public:
696  double harris_tolerance_ratio() const;
697  void set_harris_tolerance_ratio(double value);
698  private:
699  double _internal_harris_tolerance_ratio() const;
700  void _internal_set_harris_tolerance_ratio(double value);
701  public:
702 
703  // optional double small_pivot_threshold = 14 [default = 1e-06];
704  bool has_small_pivot_threshold() const;
705  private:
706  bool _internal_has_small_pivot_threshold() const;
707  public:
709  double small_pivot_threshold() const;
710  void set_small_pivot_threshold(double value);
711  private:
712  double _internal_small_pivot_threshold() const;
713  void _internal_set_small_pivot_threshold(double value);
714  public:
715 
716  // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
717  bool has_minimum_acceptable_pivot() const;
718  private:
719  bool _internal_has_minimum_acceptable_pivot() const;
720  public:
722  double minimum_acceptable_pivot() const;
723  void set_minimum_acceptable_pivot(double value);
724  private:
725  double _internal_minimum_acceptable_pivot() const;
726  void _internal_set_minimum_acceptable_pivot(double value);
727  public:
728 
729  // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
730  bool has_initial_basis() const;
731  private:
732  bool _internal_has_initial_basis() const;
733  public:
734  void clear_initial_basis();
737  private:
740  public:
741 
742  // optional int32 basis_refactorization_period = 19 [default = 64];
744  private:
745  bool _internal_has_basis_refactorization_period() const;
746  public:
748  ::PROTOBUF_NAMESPACE_ID::int32 basis_refactorization_period() const;
749  void set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value);
750  private:
751  ::PROTOBUF_NAMESPACE_ID::int32 _internal_basis_refactorization_period() const;
752  void _internal_set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value);
753  public:
754 
755  // optional double dualizer_threshold = 21 [default = 1.5];
756  bool has_dualizer_threshold() const;
757  private:
758  bool _internal_has_dualizer_threshold() const;
759  public:
761  double dualizer_threshold() const;
762  void set_dualizer_threshold(double value);
763  private:
764  double _internal_dualizer_threshold() const;
765  void _internal_set_dualizer_threshold(double value);
766  public:
767 
768  // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
770  private:
771  bool _internal_has_solution_feasibility_tolerance() const;
772  public:
774  double solution_feasibility_tolerance() const;
776  private:
777  double _internal_solution_feasibility_tolerance() const;
778  void _internal_set_solution_feasibility_tolerance(double value);
779  public:
780 
781  // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
782  bool has_solve_dual_problem() const;
783  private:
784  bool _internal_has_solve_dual_problem() const;
785  public:
789  private:
790  ::operations_research::glop::GlopParameters_SolverBehavior _internal_solve_dual_problem() const;
791  void _internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value);
792  public:
793 
794  // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
795  bool has_markowitz_zlatev_parameter() const;
796  private:
797  bool _internal_has_markowitz_zlatev_parameter() const;
798  public:
800  ::PROTOBUF_NAMESPACE_ID::int32 markowitz_zlatev_parameter() const;
801  void set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value);
802  private:
803  ::PROTOBUF_NAMESPACE_ID::int32 _internal_markowitz_zlatev_parameter() const;
804  void _internal_set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value);
805  public:
806 
807  // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
809  private:
810  bool _internal_has_lu_factorization_pivot_threshold() const;
811  public:
813  double lu_factorization_pivot_threshold() const;
815  private:
816  double _internal_lu_factorization_pivot_threshold() const;
817  void _internal_set_lu_factorization_pivot_threshold(double value);
818  public:
819 
820  // optional double max_time_in_seconds = 26 [default = inf];
821  bool has_max_time_in_seconds() const;
822  private:
823  bool _internal_has_max_time_in_seconds() const;
824  public:
826  double max_time_in_seconds() const;
827  void set_max_time_in_seconds(double value);
828  private:
829  double _internal_max_time_in_seconds() const;
830  void _internal_set_max_time_in_seconds(double value);
831  public:
832 
833  // optional int64 max_number_of_iterations = 27 [default = -1];
834  bool has_max_number_of_iterations() const;
835  private:
836  bool _internal_has_max_number_of_iterations() const;
837  public:
839  ::PROTOBUF_NAMESPACE_ID::int64 max_number_of_iterations() const;
840  void set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value);
841  private:
842  ::PROTOBUF_NAMESPACE_ID::int64 _internal_max_number_of_iterations() const;
843  void _internal_set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value);
844  public:
845 
846  // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
848  private:
849  bool _internal_has_markowitz_singularity_threshold() const;
850  public:
852  double markowitz_singularity_threshold() const;
854  private:
855  double _internal_markowitz_singularity_threshold() const;
856  void _internal_set_markowitz_singularity_threshold(double value);
857  public:
858 
859  // optional bool use_scaling = 16 [default = true];
860  bool has_use_scaling() const;
861  private:
862  bool _internal_has_use_scaling() const;
863  public:
864  void clear_use_scaling();
865  bool use_scaling() const;
866  void set_use_scaling(bool value);
867  private:
868  bool _internal_use_scaling() const;
869  void _internal_set_use_scaling(bool value);
870  public:
871 
872  // optional bool use_transposed_matrix = 18 [default = true];
873  bool has_use_transposed_matrix() const;
874  private:
875  bool _internal_has_use_transposed_matrix() const;
876  public:
878  bool use_transposed_matrix() const;
879  void set_use_transposed_matrix(bool value);
880  private:
881  bool _internal_use_transposed_matrix() const;
882  void _internal_set_use_transposed_matrix(bool value);
883  public:
884 
885  // optional bool dynamically_adjust_refactorization_period = 63 [default = true];
887  private:
888  bool _internal_has_dynamically_adjust_refactorization_period() const;
889  public:
893  private:
894  bool _internal_dynamically_adjust_refactorization_period() const;
895  void _internal_set_dynamically_adjust_refactorization_period(bool value);
896  public:
897 
898  // optional bool provide_strong_optimal_guarantee = 24 [default = true];
900  private:
901  bool _internal_has_provide_strong_optimal_guarantee() const;
902  public:
906  private:
907  bool _internal_provide_strong_optimal_guarantee() const;
908  void _internal_set_provide_strong_optimal_guarantee(bool value);
909  public:
910 
911  // optional int32 devex_weights_reset_period = 33 [default = 150];
912  bool has_devex_weights_reset_period() const;
913  private:
914  bool _internal_has_devex_weights_reset_period() const;
915  public:
917  ::PROTOBUF_NAMESPACE_ID::int32 devex_weights_reset_period() const;
918  void set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value);
919  private:
920  ::PROTOBUF_NAMESPACE_ID::int32 _internal_devex_weights_reset_period() const;
921  void _internal_set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value);
922  public:
923 
924  // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
925  bool has_dual_small_pivot_threshold() const;
926  private:
927  bool _internal_has_dual_small_pivot_threshold() const;
928  public:
930  double dual_small_pivot_threshold() const;
932  private:
933  double _internal_dual_small_pivot_threshold() const;
934  void _internal_set_dual_small_pivot_threshold(double value);
935  public:
936 
937  // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
938  bool has_preprocessor_zero_tolerance() const;
939  private:
940  bool _internal_has_preprocessor_zero_tolerance() const;
941  public:
943  double preprocessor_zero_tolerance() const;
945  private:
946  double _internal_preprocessor_zero_tolerance() const;
947  void _internal_set_preprocessor_zero_tolerance(double value);
948  public:
949 
950  // optional double objective_lower_limit = 40 [default = -inf];
951  bool has_objective_lower_limit() const;
952  private:
953  bool _internal_has_objective_lower_limit() const;
954  public:
956  double objective_lower_limit() const;
957  void set_objective_lower_limit(double value);
958  private:
959  double _internal_objective_lower_limit() const;
960  void _internal_set_objective_lower_limit(double value);
961  public:
962 
963  // optional double objective_upper_limit = 41 [default = inf];
964  bool has_objective_upper_limit() const;
965  private:
966  bool _internal_has_objective_upper_limit() const;
967  public:
969  double objective_upper_limit() const;
970  void set_objective_upper_limit(double value);
971  private:
972  double _internal_objective_upper_limit() const;
973  void _internal_set_objective_upper_limit(double value);
974  public:
975 
976  // optional bool change_status_to_imprecise = 58 [default = true];
977  bool has_change_status_to_imprecise() const;
978  private:
979  bool _internal_has_change_status_to_imprecise() const;
980  public:
982  bool change_status_to_imprecise() const;
984  private:
985  bool _internal_change_status_to_imprecise() const;
986  void _internal_set_change_status_to_imprecise(bool value);
987  public:
988 
989  // optional bool use_preprocessing = 34 [default = true];
990  bool has_use_preprocessing() const;
991  private:
992  bool _internal_has_use_preprocessing() const;
993  public:
995  bool use_preprocessing() const;
996  void set_use_preprocessing(bool value);
997  private:
998  bool _internal_use_preprocessing() const;
999  void _internal_set_use_preprocessing(bool value);
1000  public:
1001 
1002  // optional bool use_middle_product_form_update = 35 [default = true];
1004  private:
1005  bool _internal_has_use_middle_product_form_update() const;
1006  public:
1008  bool use_middle_product_form_update() const;
1010  private:
1011  bool _internal_use_middle_product_form_update() const;
1012  void _internal_set_use_middle_product_form_update(bool value);
1013  public:
1014 
1015  // optional bool initialize_devex_with_column_norms = 36 [default = true];
1017  private:
1018  bool _internal_has_initialize_devex_with_column_norms() const;
1019  public:
1023  private:
1024  bool _internal_initialize_devex_with_column_norms() const;
1025  void _internal_set_initialize_devex_with_column_norms(bool value);
1026  public:
1027 
1028  // optional int32 random_seed = 43 [default = 1];
1029  bool has_random_seed() const;
1030  private:
1031  bool _internal_has_random_seed() const;
1032  public:
1033  void clear_random_seed();
1034  ::PROTOBUF_NAMESPACE_ID::int32 random_seed() const;
1035  void set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value);
1036  private:
1037  ::PROTOBUF_NAMESPACE_ID::int32 _internal_random_seed() const;
1038  void _internal_set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value);
1039  public:
1040 
1041  // optional double degenerate_ministep_factor = 42 [default = 0.01];
1042  bool has_degenerate_ministep_factor() const;
1043  private:
1044  bool _internal_has_degenerate_ministep_factor() const;
1045  public:
1047  double degenerate_ministep_factor() const;
1049  private:
1050  double _internal_degenerate_ministep_factor() const;
1051  void _internal_set_degenerate_ministep_factor(double value);
1052  public:
1053 
1054  // optional double max_deterministic_time = 45 [default = inf];
1055  bool has_max_deterministic_time() const;
1056  private:
1057  bool _internal_has_max_deterministic_time() const;
1058  public:
1060  double max_deterministic_time() const;
1061  void set_max_deterministic_time(double value);
1062  private:
1063  double _internal_max_deterministic_time() const;
1064  void _internal_set_max_deterministic_time(double value);
1065  public:
1066 
1067  // optional double drop_tolerance = 52 [default = 1e-14];
1068  bool has_drop_tolerance() const;
1069  private:
1070  bool _internal_has_drop_tolerance() const;
1071  public:
1072  void clear_drop_tolerance();
1073  double drop_tolerance() const;
1074  void set_drop_tolerance(double value);
1075  private:
1076  double _internal_drop_tolerance() const;
1077  void _internal_set_drop_tolerance(double value);
1078  public:
1079 
1080  // optional int32 num_omp_threads = 44 [default = 1];
1081  bool has_num_omp_threads() const;
1082  private:
1083  bool _internal_has_num_omp_threads() const;
1084  public:
1085  void clear_num_omp_threads();
1086  ::PROTOBUF_NAMESPACE_ID::int32 num_omp_threads() const;
1087  void set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value);
1088  private:
1089  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_omp_threads() const;
1090  void _internal_set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value);
1091  public:
1092 
1093  // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
1095  private:
1096  bool _internal_has_exploit_singleton_column_in_initial_basis() const;
1097  public:
1101  private:
1102  bool _internal_exploit_singleton_column_in_initial_basis() const;
1103  void _internal_set_exploit_singleton_column_in_initial_basis(bool value);
1104  public:
1105 
1106  // optional bool use_dedicated_dual_feasibility_algorithm = 62 [default = true];
1108  private:
1109  bool _internal_has_use_dedicated_dual_feasibility_algorithm() const;
1110  public:
1114  private:
1115  bool _internal_use_dedicated_dual_feasibility_algorithm() const;
1116  void _internal_set_use_dedicated_dual_feasibility_algorithm(bool value);
1117  public:
1118 
1119  // optional bool push_to_vertex = 65 [default = true];
1120  bool has_push_to_vertex() const;
1121  private:
1122  bool _internal_has_push_to_vertex() const;
1123  public:
1124  void clear_push_to_vertex();
1125  bool push_to_vertex() const;
1126  void set_push_to_vertex(bool value);
1127  private:
1128  bool _internal_push_to_vertex() const;
1129  void _internal_set_push_to_vertex(bool value);
1130  public:
1131 
1132  // optional double relative_cost_perturbation = 54 [default = 1e-05];
1133  bool has_relative_cost_perturbation() const;
1134  private:
1135  bool _internal_has_relative_cost_perturbation() const;
1136  public:
1138  double relative_cost_perturbation() const;
1140  private:
1141  double _internal_relative_cost_perturbation() const;
1142  void _internal_set_relative_cost_perturbation(double value);
1143  public:
1144 
1145  // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
1147  private:
1148  bool _internal_has_relative_max_cost_perturbation() const;
1149  public:
1151  double relative_max_cost_perturbation() const;
1153  private:
1154  double _internal_relative_max_cost_perturbation() const;
1155  void _internal_set_relative_max_cost_perturbation(double value);
1156  public:
1157 
1158  // optional double max_number_of_reoptimizations = 56 [default = 40];
1159  bool has_max_number_of_reoptimizations() const;
1160  private:
1161  bool _internal_has_max_number_of_reoptimizations() const;
1162  public:
1164  double max_number_of_reoptimizations() const;
1166  private:
1167  double _internal_max_number_of_reoptimizations() const;
1168  void _internal_set_max_number_of_reoptimizations(double value);
1169  public:
1170 
1171  // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1172  bool has_scaling_method() const;
1173  private:
1174  bool _internal_has_scaling_method() const;
1175  public:
1176  void clear_scaling_method();
1179  private:
1180  ::operations_research::glop::GlopParameters_ScalingAlgorithm _internal_scaling_method() const;
1181  void _internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value);
1182  public:
1183 
1184  // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1185  bool has_cost_scaling() const;
1186  private:
1187  bool _internal_has_cost_scaling() const;
1188  public:
1189  void clear_cost_scaling();
1192  private:
1194  void _internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value);
1195  public:
1196 
1197  // optional double initial_condition_number_threshold = 59 [default = 1e+50];
1199  private:
1200  bool _internal_has_initial_condition_number_threshold() const;
1201  public:
1203  double initial_condition_number_threshold() const;
1205  private:
1206  double _internal_initial_condition_number_threshold() const;
1207  void _internal_set_initial_condition_number_threshold(double value);
1208  public:
1209 
1210  // optional double crossover_bound_snapping_distance = 64 [default = inf];
1212  private:
1213  bool _internal_has_crossover_bound_snapping_distance() const;
1214  public:
1216  double crossover_bound_snapping_distance() const;
1218  private:
1219  double _internal_crossover_bound_snapping_distance() const;
1220  void _internal_set_crossover_bound_snapping_distance(double value);
1221  public:
1222 
1223  // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
1224  private:
1225  class _Internal;
1226 
1227  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1228  typedef void InternalArenaConstructable_;
1229  typedef void DestructorSkippable_;
1230  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<2> _has_bits_;
1231  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1232  bool use_dual_simplex_;
1233  bool allow_simplex_algorithm_change_;
1234  bool perturb_costs_in_dual_simplex_;
1235  bool log_search_progress_;
1236  int feasibility_rule_;
1237  int optimization_rule_;
1238  double refactorization_threshold_;
1239  double recompute_reduced_costs_threshold_;
1240  double recompute_edges_norm_threshold_;
1241  double primal_feasibility_tolerance_;
1242  double dual_feasibility_tolerance_;
1243  double ratio_test_zero_threshold_;
1244  double harris_tolerance_ratio_;
1245  double small_pivot_threshold_;
1246  double minimum_acceptable_pivot_;
1247  int initial_basis_;
1248  ::PROTOBUF_NAMESPACE_ID::int32 basis_refactorization_period_;
1249  double dualizer_threshold_;
1250  double solution_feasibility_tolerance_;
1251  int solve_dual_problem_;
1252  ::PROTOBUF_NAMESPACE_ID::int32 markowitz_zlatev_parameter_;
1253  double lu_factorization_pivot_threshold_;
1254  double max_time_in_seconds_;
1255  ::PROTOBUF_NAMESPACE_ID::int64 max_number_of_iterations_;
1256  double markowitz_singularity_threshold_;
1257  bool use_scaling_;
1258  bool use_transposed_matrix_;
1259  bool dynamically_adjust_refactorization_period_;
1260  bool provide_strong_optimal_guarantee_;
1261  ::PROTOBUF_NAMESPACE_ID::int32 devex_weights_reset_period_;
1262  double dual_small_pivot_threshold_;
1263  double preprocessor_zero_tolerance_;
1264  double objective_lower_limit_;
1265  double objective_upper_limit_;
1266  bool change_status_to_imprecise_;
1267  bool use_preprocessing_;
1268  bool use_middle_product_form_update_;
1269  bool initialize_devex_with_column_norms_;
1270  ::PROTOBUF_NAMESPACE_ID::int32 random_seed_;
1271  double degenerate_ministep_factor_;
1272  double max_deterministic_time_;
1273  double drop_tolerance_;
1274  ::PROTOBUF_NAMESPACE_ID::int32 num_omp_threads_;
1275  bool exploit_singleton_column_in_initial_basis_;
1276  bool use_dedicated_dual_feasibility_algorithm_;
1277  bool push_to_vertex_;
1278  double relative_cost_perturbation_;
1279  double relative_max_cost_perturbation_;
1280  double max_number_of_reoptimizations_;
1281  int scaling_method_;
1282  int cost_scaling_;
1283  double initial_condition_number_threshold_;
1284  double crossover_bound_snapping_distance_;
1285  friend struct ::TableStruct_ortools_2fglop_2fparameters_2eproto;
1286 };
1287 // ===================================================================
1288 
1289 
1290 // ===================================================================
1291 
1292 #ifdef __GNUC__
1293  #pragma GCC diagnostic push
1294  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1295 #endif // __GNUC__
1296 // GlopParameters
1297 
1298 // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1299 inline bool GlopParameters::_internal_has_scaling_method() const {
1300  bool value = (_has_bits_[1] & 0x00020000u) != 0;
1301  return value;
1302 }
1304  return _internal_has_scaling_method();
1305 }
1307  scaling_method_ = 1;
1308  _has_bits_[1] &= ~0x00020000u;
1309 }
1310 inline ::operations_research::glop::GlopParameters_ScalingAlgorithm GlopParameters::_internal_scaling_method() const {
1311  return static_cast< ::operations_research::glop::GlopParameters_ScalingAlgorithm >(scaling_method_);
1312 }
1314  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.scaling_method)
1315  return _internal_scaling_method();
1316 }
1317 inline void GlopParameters::_internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value) {
1319  _has_bits_[1] |= 0x00020000u;
1320  scaling_method_ = value;
1321 }
1323  _internal_set_scaling_method(value);
1324  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.scaling_method)
1325 }
1326 
1327 // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
1328 inline bool GlopParameters::_internal_has_feasibility_rule() const {
1329  bool value = (_has_bits_[0] & 0x00000010u) != 0;
1330  return value;
1331 }
1333  return _internal_has_feasibility_rule();
1334 }
1336  feasibility_rule_ = 1;
1337  _has_bits_[0] &= ~0x00000010u;
1338 }
1339 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_feasibility_rule() const {
1340  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(feasibility_rule_);
1341 }
1343  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.feasibility_rule)
1344  return _internal_feasibility_rule();
1345 }
1346 inline void GlopParameters::_internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1348  _has_bits_[0] |= 0x00000010u;
1349  feasibility_rule_ = value;
1350 }
1352  _internal_set_feasibility_rule(value);
1353  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.feasibility_rule)
1354 }
1355 
1356 // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
1357 inline bool GlopParameters::_internal_has_optimization_rule() const {
1358  bool value = (_has_bits_[0] & 0x00000020u) != 0;
1359  return value;
1360 }
1362  return _internal_has_optimization_rule();
1363 }
1365  optimization_rule_ = 1;
1366  _has_bits_[0] &= ~0x00000020u;
1367 }
1368 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_optimization_rule() const {
1369  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(optimization_rule_);
1370 }
1372  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.optimization_rule)
1373  return _internal_optimization_rule();
1374 }
1375 inline void GlopParameters::_internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1377  _has_bits_[0] |= 0x00000020u;
1378  optimization_rule_ = value;
1379 }
1381  _internal_set_optimization_rule(value);
1382  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.optimization_rule)
1383 }
1384 
1385 // optional double refactorization_threshold = 6 [default = 1e-09];
1386 inline bool GlopParameters::_internal_has_refactorization_threshold() const {
1387  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1388  return value;
1389 }
1391  return _internal_has_refactorization_threshold();
1392 }
1394  refactorization_threshold_ = 1e-09;
1395  _has_bits_[0] &= ~0x00000040u;
1396 }
1397 inline double GlopParameters::_internal_refactorization_threshold() const {
1398  return refactorization_threshold_;
1399 }
1401  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.refactorization_threshold)
1402  return _internal_refactorization_threshold();
1403 }
1404 inline void GlopParameters::_internal_set_refactorization_threshold(double value) {
1405  _has_bits_[0] |= 0x00000040u;
1406  refactorization_threshold_ = value;
1407 }
1409  _internal_set_refactorization_threshold(value);
1410  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.refactorization_threshold)
1411 }
1412 
1413 // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
1414 inline bool GlopParameters::_internal_has_recompute_reduced_costs_threshold() const {
1415  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1416  return value;
1417 }
1419  return _internal_has_recompute_reduced_costs_threshold();
1420 }
1422  recompute_reduced_costs_threshold_ = 1e-08;
1423  _has_bits_[0] &= ~0x00000080u;
1424 }
1425 inline double GlopParameters::_internal_recompute_reduced_costs_threshold() const {
1426  return recompute_reduced_costs_threshold_;
1427 }
1429  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1430  return _internal_recompute_reduced_costs_threshold();
1431 }
1432 inline void GlopParameters::_internal_set_recompute_reduced_costs_threshold(double value) {
1433  _has_bits_[0] |= 0x00000080u;
1434  recompute_reduced_costs_threshold_ = value;
1435 }
1437  _internal_set_recompute_reduced_costs_threshold(value);
1438  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1439 }
1440 
1441 // optional double recompute_edges_norm_threshold = 9 [default = 100];
1442 inline bool GlopParameters::_internal_has_recompute_edges_norm_threshold() const {
1443  bool value = (_has_bits_[0] & 0x00000100u) != 0;
1444  return value;
1445 }
1447  return _internal_has_recompute_edges_norm_threshold();
1448 }
1450  recompute_edges_norm_threshold_ = 100;
1451  _has_bits_[0] &= ~0x00000100u;
1452 }
1453 inline double GlopParameters::_internal_recompute_edges_norm_threshold() const {
1454  return recompute_edges_norm_threshold_;
1455 }
1457  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1458  return _internal_recompute_edges_norm_threshold();
1459 }
1460 inline void GlopParameters::_internal_set_recompute_edges_norm_threshold(double value) {
1461  _has_bits_[0] |= 0x00000100u;
1462  recompute_edges_norm_threshold_ = value;
1463 }
1465  _internal_set_recompute_edges_norm_threshold(value);
1466  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1467 }
1468 
1469 // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
1470 inline bool GlopParameters::_internal_has_primal_feasibility_tolerance() const {
1471  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1472  return value;
1473 }
1475  return _internal_has_primal_feasibility_tolerance();
1476 }
1478  primal_feasibility_tolerance_ = 1e-08;
1479  _has_bits_[0] &= ~0x00000200u;
1480 }
1481 inline double GlopParameters::_internal_primal_feasibility_tolerance() const {
1482  return primal_feasibility_tolerance_;
1483 }
1485  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1486  return _internal_primal_feasibility_tolerance();
1487 }
1488 inline void GlopParameters::_internal_set_primal_feasibility_tolerance(double value) {
1489  _has_bits_[0] |= 0x00000200u;
1490  primal_feasibility_tolerance_ = value;
1491 }
1493  _internal_set_primal_feasibility_tolerance(value);
1494  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1495 }
1496 
1497 // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
1498 inline bool GlopParameters::_internal_has_dual_feasibility_tolerance() const {
1499  bool value = (_has_bits_[0] & 0x00000400u) != 0;
1500  return value;
1501 }
1503  return _internal_has_dual_feasibility_tolerance();
1504 }
1506  dual_feasibility_tolerance_ = 1e-08;
1507  _has_bits_[0] &= ~0x00000400u;
1508 }
1509 inline double GlopParameters::_internal_dual_feasibility_tolerance() const {
1510  return dual_feasibility_tolerance_;
1511 }
1513  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1514  return _internal_dual_feasibility_tolerance();
1515 }
1516 inline void GlopParameters::_internal_set_dual_feasibility_tolerance(double value) {
1517  _has_bits_[0] |= 0x00000400u;
1518  dual_feasibility_tolerance_ = value;
1519 }
1521  _internal_set_dual_feasibility_tolerance(value);
1522  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1523 }
1524 
1525 // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
1526 inline bool GlopParameters::_internal_has_ratio_test_zero_threshold() const {
1527  bool value = (_has_bits_[0] & 0x00000800u) != 0;
1528  return value;
1529 }
1531  return _internal_has_ratio_test_zero_threshold();
1532 }
1534  ratio_test_zero_threshold_ = 1e-09;
1535  _has_bits_[0] &= ~0x00000800u;
1536 }
1537 inline double GlopParameters::_internal_ratio_test_zero_threshold() const {
1538  return ratio_test_zero_threshold_;
1539 }
1541  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1542  return _internal_ratio_test_zero_threshold();
1543 }
1544 inline void GlopParameters::_internal_set_ratio_test_zero_threshold(double value) {
1545  _has_bits_[0] |= 0x00000800u;
1546  ratio_test_zero_threshold_ = value;
1547 }
1549  _internal_set_ratio_test_zero_threshold(value);
1550  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1551 }
1552 
1553 // optional double harris_tolerance_ratio = 13 [default = 0.5];
1554 inline bool GlopParameters::_internal_has_harris_tolerance_ratio() const {
1555  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1556  return value;
1557 }
1559  return _internal_has_harris_tolerance_ratio();
1560 }
1562  harris_tolerance_ratio_ = 0.5;
1563  _has_bits_[0] &= ~0x00001000u;
1564 }
1565 inline double GlopParameters::_internal_harris_tolerance_ratio() const {
1566  return harris_tolerance_ratio_;
1567 }
1569  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1570  return _internal_harris_tolerance_ratio();
1571 }
1572 inline void GlopParameters::_internal_set_harris_tolerance_ratio(double value) {
1573  _has_bits_[0] |= 0x00001000u;
1574  harris_tolerance_ratio_ = value;
1575 }
1577  _internal_set_harris_tolerance_ratio(value);
1578  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1579 }
1580 
1581 // optional double small_pivot_threshold = 14 [default = 1e-06];
1582 inline bool GlopParameters::_internal_has_small_pivot_threshold() const {
1583  bool value = (_has_bits_[0] & 0x00002000u) != 0;
1584  return value;
1585 }
1587  return _internal_has_small_pivot_threshold();
1588 }
1590  small_pivot_threshold_ = 1e-06;
1591  _has_bits_[0] &= ~0x00002000u;
1592 }
1593 inline double GlopParameters::_internal_small_pivot_threshold() const {
1594  return small_pivot_threshold_;
1595 }
1597  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.small_pivot_threshold)
1598  return _internal_small_pivot_threshold();
1599 }
1600 inline void GlopParameters::_internal_set_small_pivot_threshold(double value) {
1601  _has_bits_[0] |= 0x00002000u;
1602  small_pivot_threshold_ = value;
1603 }
1605  _internal_set_small_pivot_threshold(value);
1606  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.small_pivot_threshold)
1607 }
1608 
1609 // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
1610 inline bool GlopParameters::_internal_has_minimum_acceptable_pivot() const {
1611  bool value = (_has_bits_[0] & 0x00004000u) != 0;
1612  return value;
1613 }
1615  return _internal_has_minimum_acceptable_pivot();
1616 }
1618  minimum_acceptable_pivot_ = 1e-06;
1619  _has_bits_[0] &= ~0x00004000u;
1620 }
1621 inline double GlopParameters::_internal_minimum_acceptable_pivot() const {
1622  return minimum_acceptable_pivot_;
1623 }
1625  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1626  return _internal_minimum_acceptable_pivot();
1627 }
1628 inline void GlopParameters::_internal_set_minimum_acceptable_pivot(double value) {
1629  _has_bits_[0] |= 0x00004000u;
1630  minimum_acceptable_pivot_ = value;
1631 }
1633  _internal_set_minimum_acceptable_pivot(value);
1634  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1635 }
1636 
1637 // optional double drop_tolerance = 52 [default = 1e-14];
1638 inline bool GlopParameters::_internal_has_drop_tolerance() const {
1639  bool value = (_has_bits_[1] & 0x00000200u) != 0;
1640  return value;
1641 }
1643  return _internal_has_drop_tolerance();
1644 }
1646  drop_tolerance_ = 1e-14;
1647  _has_bits_[1] &= ~0x00000200u;
1648 }
1649 inline double GlopParameters::_internal_drop_tolerance() const {
1650  return drop_tolerance_;
1651 }
1652 inline double GlopParameters::drop_tolerance() const {
1653  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.drop_tolerance)
1654  return _internal_drop_tolerance();
1655 }
1656 inline void GlopParameters::_internal_set_drop_tolerance(double value) {
1657  _has_bits_[1] |= 0x00000200u;
1658  drop_tolerance_ = value;
1659 }
1661  _internal_set_drop_tolerance(value);
1662  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.drop_tolerance)
1663 }
1664 
1665 // optional bool use_scaling = 16 [default = true];
1666 inline bool GlopParameters::_internal_has_use_scaling() const {
1667  bool value = (_has_bits_[0] & 0x02000000u) != 0;
1668  return value;
1669 }
1670 inline bool GlopParameters::has_use_scaling() const {
1671  return _internal_has_use_scaling();
1672 }
1674  use_scaling_ = true;
1675  _has_bits_[0] &= ~0x02000000u;
1676 }
1677 inline bool GlopParameters::_internal_use_scaling() const {
1678  return use_scaling_;
1679 }
1680 inline bool GlopParameters::use_scaling() const {
1681  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_scaling)
1682  return _internal_use_scaling();
1683 }
1684 inline void GlopParameters::_internal_set_use_scaling(bool value) {
1685  _has_bits_[0] |= 0x02000000u;
1686  use_scaling_ = value;
1687 }
1689  _internal_set_use_scaling(value);
1690  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_scaling)
1691 }
1692 
1693 // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1694 inline bool GlopParameters::_internal_has_cost_scaling() const {
1695  bool value = (_has_bits_[1] & 0x00040000u) != 0;
1696  return value;
1697 }
1699  return _internal_has_cost_scaling();
1700 }
1702  cost_scaling_ = 1;
1703  _has_bits_[1] &= ~0x00040000u;
1704 }
1705 inline ::operations_research::glop::GlopParameters_CostScalingAlgorithm GlopParameters::_internal_cost_scaling() const {
1706  return static_cast< ::operations_research::glop::GlopParameters_CostScalingAlgorithm >(cost_scaling_);
1707 }
1709  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.cost_scaling)
1710  return _internal_cost_scaling();
1711 }
1712 inline void GlopParameters::_internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value) {
1714  _has_bits_[1] |= 0x00040000u;
1715  cost_scaling_ = value;
1716 }
1718  _internal_set_cost_scaling(value);
1719  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.cost_scaling)
1720 }
1721 
1722 // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
1723 inline bool GlopParameters::_internal_has_initial_basis() const {
1724  bool value = (_has_bits_[0] & 0x00008000u) != 0;
1725  return value;
1726 }
1728  return _internal_has_initial_basis();
1729 }
1731  initial_basis_ = 2;
1732  _has_bits_[0] &= ~0x00008000u;
1733 }
1734 inline ::operations_research::glop::GlopParameters_InitialBasisHeuristic GlopParameters::_internal_initial_basis() const {
1735  return static_cast< ::operations_research::glop::GlopParameters_InitialBasisHeuristic >(initial_basis_);
1736 }
1738  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_basis)
1739  return _internal_initial_basis();
1740 }
1741 inline void GlopParameters::_internal_set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value) {
1743  _has_bits_[0] |= 0x00008000u;
1744  initial_basis_ = value;
1745 }
1747  _internal_set_initial_basis(value);
1748  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_basis)
1749 }
1750 
1751 // optional bool use_transposed_matrix = 18 [default = true];
1752 inline bool GlopParameters::_internal_has_use_transposed_matrix() const {
1753  bool value = (_has_bits_[0] & 0x04000000u) != 0;
1754  return value;
1755 }
1757  return _internal_has_use_transposed_matrix();
1758 }
1760  use_transposed_matrix_ = true;
1761  _has_bits_[0] &= ~0x04000000u;
1762 }
1763 inline bool GlopParameters::_internal_use_transposed_matrix() const {
1764  return use_transposed_matrix_;
1765 }
1767  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_transposed_matrix)
1768  return _internal_use_transposed_matrix();
1769 }
1770 inline void GlopParameters::_internal_set_use_transposed_matrix(bool value) {
1771  _has_bits_[0] |= 0x04000000u;
1772  use_transposed_matrix_ = value;
1773 }
1775  _internal_set_use_transposed_matrix(value);
1776  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_transposed_matrix)
1777 }
1778 
1779 // optional int32 basis_refactorization_period = 19 [default = 64];
1780 inline bool GlopParameters::_internal_has_basis_refactorization_period() const {
1781  bool value = (_has_bits_[0] & 0x00010000u) != 0;
1782  return value;
1783 }
1785  return _internal_has_basis_refactorization_period();
1786 }
1788  basis_refactorization_period_ = 64;
1789  _has_bits_[0] &= ~0x00010000u;
1790 }
1791 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_basis_refactorization_period() const {
1792  return basis_refactorization_period_;
1793 }
1794 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::basis_refactorization_period() const {
1795  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.basis_refactorization_period)
1796  return _internal_basis_refactorization_period();
1797 }
1798 inline void GlopParameters::_internal_set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
1799  _has_bits_[0] |= 0x00010000u;
1800  basis_refactorization_period_ = value;
1801 }
1802 inline void GlopParameters::set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
1803  _internal_set_basis_refactorization_period(value);
1804  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.basis_refactorization_period)
1805 }
1806 
1807 // optional bool dynamically_adjust_refactorization_period = 63 [default = true];
1808 inline bool GlopParameters::_internal_has_dynamically_adjust_refactorization_period() const {
1809  bool value = (_has_bits_[0] & 0x08000000u) != 0;
1810  return value;
1811 }
1813  return _internal_has_dynamically_adjust_refactorization_period();
1814 }
1816  dynamically_adjust_refactorization_period_ = true;
1817  _has_bits_[0] &= ~0x08000000u;
1818 }
1819 inline bool GlopParameters::_internal_dynamically_adjust_refactorization_period() const {
1820  return dynamically_adjust_refactorization_period_;
1821 }
1823  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dynamically_adjust_refactorization_period)
1824  return _internal_dynamically_adjust_refactorization_period();
1825 }
1826 inline void GlopParameters::_internal_set_dynamically_adjust_refactorization_period(bool value) {
1827  _has_bits_[0] |= 0x08000000u;
1828  dynamically_adjust_refactorization_period_ = value;
1829 }
1831  _internal_set_dynamically_adjust_refactorization_period(value);
1832  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dynamically_adjust_refactorization_period)
1833 }
1834 
1835 // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
1836 inline bool GlopParameters::_internal_has_solve_dual_problem() const {
1837  bool value = (_has_bits_[0] & 0x00080000u) != 0;
1838  return value;
1839 }
1841  return _internal_has_solve_dual_problem();
1842 }
1844  solve_dual_problem_ = 2;
1845  _has_bits_[0] &= ~0x00080000u;
1846 }
1847 inline ::operations_research::glop::GlopParameters_SolverBehavior GlopParameters::_internal_solve_dual_problem() const {
1848  return static_cast< ::operations_research::glop::GlopParameters_SolverBehavior >(solve_dual_problem_);
1849 }
1851  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solve_dual_problem)
1852  return _internal_solve_dual_problem();
1853 }
1854 inline void GlopParameters::_internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value) {
1856  _has_bits_[0] |= 0x00080000u;
1857  solve_dual_problem_ = value;
1858 }
1860  _internal_set_solve_dual_problem(value);
1861  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solve_dual_problem)
1862 }
1863 
1864 // optional double dualizer_threshold = 21 [default = 1.5];
1865 inline bool GlopParameters::_internal_has_dualizer_threshold() const {
1866  bool value = (_has_bits_[0] & 0x00020000u) != 0;
1867  return value;
1868 }
1870  return _internal_has_dualizer_threshold();
1871 }
1873  dualizer_threshold_ = 1.5;
1874  _has_bits_[0] &= ~0x00020000u;
1875 }
1876 inline double GlopParameters::_internal_dualizer_threshold() const {
1877  return dualizer_threshold_;
1878 }
1879 inline double GlopParameters::dualizer_threshold() const {
1880  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dualizer_threshold)
1881  return _internal_dualizer_threshold();
1882 }
1883 inline void GlopParameters::_internal_set_dualizer_threshold(double value) {
1884  _has_bits_[0] |= 0x00020000u;
1885  dualizer_threshold_ = value;
1886 }
1888  _internal_set_dualizer_threshold(value);
1889  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dualizer_threshold)
1890 }
1891 
1892 // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
1893 inline bool GlopParameters::_internal_has_solution_feasibility_tolerance() const {
1894  bool value = (_has_bits_[0] & 0x00040000u) != 0;
1895  return value;
1896 }
1898  return _internal_has_solution_feasibility_tolerance();
1899 }
1901  solution_feasibility_tolerance_ = 1e-06;
1902  _has_bits_[0] &= ~0x00040000u;
1903 }
1904 inline double GlopParameters::_internal_solution_feasibility_tolerance() const {
1905  return solution_feasibility_tolerance_;
1906 }
1908  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1909  return _internal_solution_feasibility_tolerance();
1910 }
1911 inline void GlopParameters::_internal_set_solution_feasibility_tolerance(double value) {
1912  _has_bits_[0] |= 0x00040000u;
1913  solution_feasibility_tolerance_ = value;
1914 }
1916  _internal_set_solution_feasibility_tolerance(value);
1917  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1918 }
1919 
1920 // optional bool provide_strong_optimal_guarantee = 24 [default = true];
1921 inline bool GlopParameters::_internal_has_provide_strong_optimal_guarantee() const {
1922  bool value = (_has_bits_[0] & 0x10000000u) != 0;
1923  return value;
1924 }
1926  return _internal_has_provide_strong_optimal_guarantee();
1927 }
1929  provide_strong_optimal_guarantee_ = true;
1930  _has_bits_[0] &= ~0x10000000u;
1931 }
1932 inline bool GlopParameters::_internal_provide_strong_optimal_guarantee() const {
1933  return provide_strong_optimal_guarantee_;
1934 }
1936  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1937  return _internal_provide_strong_optimal_guarantee();
1938 }
1939 inline void GlopParameters::_internal_set_provide_strong_optimal_guarantee(bool value) {
1940  _has_bits_[0] |= 0x10000000u;
1941  provide_strong_optimal_guarantee_ = value;
1942 }
1944  _internal_set_provide_strong_optimal_guarantee(value);
1945  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1946 }
1947 
1948 // optional bool change_status_to_imprecise = 58 [default = true];
1949 inline bool GlopParameters::_internal_has_change_status_to_imprecise() const {
1950  bool value = (_has_bits_[1] & 0x00000004u) != 0;
1951  return value;
1952 }
1954  return _internal_has_change_status_to_imprecise();
1955 }
1957  change_status_to_imprecise_ = true;
1958  _has_bits_[1] &= ~0x00000004u;
1959 }
1960 inline bool GlopParameters::_internal_change_status_to_imprecise() const {
1961  return change_status_to_imprecise_;
1962 }
1964  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.change_status_to_imprecise)
1965  return _internal_change_status_to_imprecise();
1966 }
1967 inline void GlopParameters::_internal_set_change_status_to_imprecise(bool value) {
1968  _has_bits_[1] |= 0x00000004u;
1969  change_status_to_imprecise_ = value;
1970 }
1972  _internal_set_change_status_to_imprecise(value);
1973  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.change_status_to_imprecise)
1974 }
1975 
1976 // optional double max_number_of_reoptimizations = 56 [default = 40];
1977 inline bool GlopParameters::_internal_has_max_number_of_reoptimizations() const {
1978  bool value = (_has_bits_[1] & 0x00010000u) != 0;
1979  return value;
1980 }
1982  return _internal_has_max_number_of_reoptimizations();
1983 }
1985  max_number_of_reoptimizations_ = 40;
1986  _has_bits_[1] &= ~0x00010000u;
1987 }
1988 inline double GlopParameters::_internal_max_number_of_reoptimizations() const {
1989  return max_number_of_reoptimizations_;
1990 }
1992  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
1993  return _internal_max_number_of_reoptimizations();
1994 }
1995 inline void GlopParameters::_internal_set_max_number_of_reoptimizations(double value) {
1996  _has_bits_[1] |= 0x00010000u;
1997  max_number_of_reoptimizations_ = value;
1998 }
2000  _internal_set_max_number_of_reoptimizations(value);
2001  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
2002 }
2003 
2004 // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
2005 inline bool GlopParameters::_internal_has_lu_factorization_pivot_threshold() const {
2006  bool value = (_has_bits_[0] & 0x00200000u) != 0;
2007  return value;
2008 }
2010  return _internal_has_lu_factorization_pivot_threshold();
2011 }
2013  lu_factorization_pivot_threshold_ = 0.01;
2014  _has_bits_[0] &= ~0x00200000u;
2015 }
2016 inline double GlopParameters::_internal_lu_factorization_pivot_threshold() const {
2017  return lu_factorization_pivot_threshold_;
2018 }
2020  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2021  return _internal_lu_factorization_pivot_threshold();
2022 }
2023 inline void GlopParameters::_internal_set_lu_factorization_pivot_threshold(double value) {
2024  _has_bits_[0] |= 0x00200000u;
2025  lu_factorization_pivot_threshold_ = value;
2026 }
2028  _internal_set_lu_factorization_pivot_threshold(value);
2029  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2030 }
2031 
2032 // optional double max_time_in_seconds = 26 [default = inf];
2033 inline bool GlopParameters::_internal_has_max_time_in_seconds() const {
2034  bool value = (_has_bits_[0] & 0x00400000u) != 0;
2035  return value;
2036 }
2038  return _internal_has_max_time_in_seconds();
2039 }
2041  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
2042  _has_bits_[0] &= ~0x00400000u;
2043 }
2044 inline double GlopParameters::_internal_max_time_in_seconds() const {
2045  return max_time_in_seconds_;
2046 }
2048  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_time_in_seconds)
2049  return _internal_max_time_in_seconds();
2050 }
2051 inline void GlopParameters::_internal_set_max_time_in_seconds(double value) {
2052  _has_bits_[0] |= 0x00400000u;
2053  max_time_in_seconds_ = value;
2054 }
2056  _internal_set_max_time_in_seconds(value);
2057  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_time_in_seconds)
2058 }
2059 
2060 // optional double max_deterministic_time = 45 [default = inf];
2061 inline bool GlopParameters::_internal_has_max_deterministic_time() const {
2062  bool value = (_has_bits_[1] & 0x00000100u) != 0;
2063  return value;
2064 }
2066  return _internal_has_max_deterministic_time();
2067 }
2069  max_deterministic_time_ = std::numeric_limits<double>::infinity();
2070  _has_bits_[1] &= ~0x00000100u;
2071 }
2072 inline double GlopParameters::_internal_max_deterministic_time() const {
2073  return max_deterministic_time_;
2074 }
2076  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_deterministic_time)
2077  return _internal_max_deterministic_time();
2078 }
2079 inline void GlopParameters::_internal_set_max_deterministic_time(double value) {
2080  _has_bits_[1] |= 0x00000100u;
2081  max_deterministic_time_ = value;
2082 }
2084  _internal_set_max_deterministic_time(value);
2085  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_deterministic_time)
2086 }
2087 
2088 // optional int64 max_number_of_iterations = 27 [default = -1];
2089 inline bool GlopParameters::_internal_has_max_number_of_iterations() const {
2090  bool value = (_has_bits_[0] & 0x00800000u) != 0;
2091  return value;
2092 }
2094  return _internal_has_max_number_of_iterations();
2095 }
2097  max_number_of_iterations_ = int64_t{-1};
2098  _has_bits_[0] &= ~0x00800000u;
2099 }
2100 inline ::PROTOBUF_NAMESPACE_ID::int64 GlopParameters::_internal_max_number_of_iterations() const {
2101  return max_number_of_iterations_;
2102 }
2103 inline ::PROTOBUF_NAMESPACE_ID::int64 GlopParameters::max_number_of_iterations() const {
2104  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_iterations)
2105  return _internal_max_number_of_iterations();
2106 }
2107 inline void GlopParameters::_internal_set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value) {
2108  _has_bits_[0] |= 0x00800000u;
2109  max_number_of_iterations_ = value;
2110 }
2111 inline void GlopParameters::set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value) {
2112  _internal_set_max_number_of_iterations(value);
2113  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_iterations)
2114 }
2115 
2116 // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
2117 inline bool GlopParameters::_internal_has_markowitz_zlatev_parameter() const {
2118  bool value = (_has_bits_[0] & 0x00100000u) != 0;
2119  return value;
2120 }
2122  return _internal_has_markowitz_zlatev_parameter();
2123 }
2125  markowitz_zlatev_parameter_ = 3;
2126  _has_bits_[0] &= ~0x00100000u;
2127 }
2128 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_markowitz_zlatev_parameter() const {
2129  return markowitz_zlatev_parameter_;
2130 }
2131 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::markowitz_zlatev_parameter() const {
2132  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2133  return _internal_markowitz_zlatev_parameter();
2134 }
2135 inline void GlopParameters::_internal_set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value) {
2136  _has_bits_[0] |= 0x00100000u;
2137  markowitz_zlatev_parameter_ = value;
2138 }
2139 inline void GlopParameters::set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value) {
2140  _internal_set_markowitz_zlatev_parameter(value);
2141  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2142 }
2143 
2144 // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
2145 inline bool GlopParameters::_internal_has_markowitz_singularity_threshold() const {
2146  bool value = (_has_bits_[0] & 0x01000000u) != 0;
2147  return value;
2148 }
2150  return _internal_has_markowitz_singularity_threshold();
2151 }
2153  markowitz_singularity_threshold_ = 1e-15;
2154  _has_bits_[0] &= ~0x01000000u;
2155 }
2156 inline double GlopParameters::_internal_markowitz_singularity_threshold() const {
2157  return markowitz_singularity_threshold_;
2158 }
2160  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2161  return _internal_markowitz_singularity_threshold();
2162 }
2163 inline void GlopParameters::_internal_set_markowitz_singularity_threshold(double value) {
2164  _has_bits_[0] |= 0x01000000u;
2165  markowitz_singularity_threshold_ = value;
2166 }
2168  _internal_set_markowitz_singularity_threshold(value);
2169  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2170 }
2171 
2172 // optional bool use_dual_simplex = 31 [default = false];
2173 inline bool GlopParameters::_internal_has_use_dual_simplex() const {
2174  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2175  return value;
2176 }
2178  return _internal_has_use_dual_simplex();
2179 }
2181  use_dual_simplex_ = false;
2182  _has_bits_[0] &= ~0x00000001u;
2183 }
2184 inline bool GlopParameters::_internal_use_dual_simplex() const {
2185  return use_dual_simplex_;
2186 }
2188  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_dual_simplex)
2189  return _internal_use_dual_simplex();
2190 }
2191 inline void GlopParameters::_internal_set_use_dual_simplex(bool value) {
2192  _has_bits_[0] |= 0x00000001u;
2193  use_dual_simplex_ = value;
2194 }
2196  _internal_set_use_dual_simplex(value);
2197  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_dual_simplex)
2198 }
2199 
2200 // optional bool allow_simplex_algorithm_change = 32 [default = false];
2201 inline bool GlopParameters::_internal_has_allow_simplex_algorithm_change() const {
2202  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2203  return value;
2204 }
2206  return _internal_has_allow_simplex_algorithm_change();
2207 }
2209  allow_simplex_algorithm_change_ = false;
2210  _has_bits_[0] &= ~0x00000002u;
2211 }
2212 inline bool GlopParameters::_internal_allow_simplex_algorithm_change() const {
2213  return allow_simplex_algorithm_change_;
2214 }
2216  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2217  return _internal_allow_simplex_algorithm_change();
2218 }
2219 inline void GlopParameters::_internal_set_allow_simplex_algorithm_change(bool value) {
2220  _has_bits_[0] |= 0x00000002u;
2221  allow_simplex_algorithm_change_ = value;
2222 }
2224  _internal_set_allow_simplex_algorithm_change(value);
2225  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2226 }
2227 
2228 // optional int32 devex_weights_reset_period = 33 [default = 150];
2229 inline bool GlopParameters::_internal_has_devex_weights_reset_period() const {
2230  bool value = (_has_bits_[0] & 0x20000000u) != 0;
2231  return value;
2232 }
2234  return _internal_has_devex_weights_reset_period();
2235 }
2237  devex_weights_reset_period_ = 150;
2238  _has_bits_[0] &= ~0x20000000u;
2239 }
2240 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_devex_weights_reset_period() const {
2241  return devex_weights_reset_period_;
2242 }
2243 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::devex_weights_reset_period() const {
2244  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.devex_weights_reset_period)
2245  return _internal_devex_weights_reset_period();
2246 }
2247 inline void GlopParameters::_internal_set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
2248  _has_bits_[0] |= 0x20000000u;
2249  devex_weights_reset_period_ = value;
2250 }
2251 inline void GlopParameters::set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
2252  _internal_set_devex_weights_reset_period(value);
2253  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.devex_weights_reset_period)
2254 }
2255 
2256 // optional bool use_preprocessing = 34 [default = true];
2257 inline bool GlopParameters::_internal_has_use_preprocessing() const {
2258  bool value = (_has_bits_[1] & 0x00000008u) != 0;
2259  return value;
2260 }
2262  return _internal_has_use_preprocessing();
2263 }
2265  use_preprocessing_ = true;
2266  _has_bits_[1] &= ~0x00000008u;
2267 }
2268 inline bool GlopParameters::_internal_use_preprocessing() const {
2269  return use_preprocessing_;
2270 }
2272  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_preprocessing)
2273  return _internal_use_preprocessing();
2274 }
2275 inline void GlopParameters::_internal_set_use_preprocessing(bool value) {
2276  _has_bits_[1] |= 0x00000008u;
2277  use_preprocessing_ = value;
2278 }
2280  _internal_set_use_preprocessing(value);
2281  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_preprocessing)
2282 }
2283 
2284 // optional bool use_middle_product_form_update = 35 [default = true];
2285 inline bool GlopParameters::_internal_has_use_middle_product_form_update() const {
2286  bool value = (_has_bits_[1] & 0x00000010u) != 0;
2287  return value;
2288 }
2290  return _internal_has_use_middle_product_form_update();
2291 }
2293  use_middle_product_form_update_ = true;
2294  _has_bits_[1] &= ~0x00000010u;
2295 }
2296 inline bool GlopParameters::_internal_use_middle_product_form_update() const {
2297  return use_middle_product_form_update_;
2298 }
2300  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_middle_product_form_update)
2301  return _internal_use_middle_product_form_update();
2302 }
2303 inline void GlopParameters::_internal_set_use_middle_product_form_update(bool value) {
2304  _has_bits_[1] |= 0x00000010u;
2305  use_middle_product_form_update_ = value;
2306 }
2308  _internal_set_use_middle_product_form_update(value);
2309  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_middle_product_form_update)
2310 }
2311 
2312 // optional bool initialize_devex_with_column_norms = 36 [default = true];
2313 inline bool GlopParameters::_internal_has_initialize_devex_with_column_norms() const {
2314  bool value = (_has_bits_[1] & 0x00000020u) != 0;
2315  return value;
2316 }
2318  return _internal_has_initialize_devex_with_column_norms();
2319 }
2321  initialize_devex_with_column_norms_ = true;
2322  _has_bits_[1] &= ~0x00000020u;
2323 }
2324 inline bool GlopParameters::_internal_initialize_devex_with_column_norms() const {
2325  return initialize_devex_with_column_norms_;
2326 }
2328  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2329  return _internal_initialize_devex_with_column_norms();
2330 }
2331 inline void GlopParameters::_internal_set_initialize_devex_with_column_norms(bool value) {
2332  _has_bits_[1] |= 0x00000020u;
2333  initialize_devex_with_column_norms_ = value;
2334 }
2336  _internal_set_initialize_devex_with_column_norms(value);
2337  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2338 }
2339 
2340 // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
2341 inline bool GlopParameters::_internal_has_exploit_singleton_column_in_initial_basis() const {
2342  bool value = (_has_bits_[1] & 0x00000800u) != 0;
2343  return value;
2344 }
2346  return _internal_has_exploit_singleton_column_in_initial_basis();
2347 }
2349  exploit_singleton_column_in_initial_basis_ = true;
2350  _has_bits_[1] &= ~0x00000800u;
2351 }
2352 inline bool GlopParameters::_internal_exploit_singleton_column_in_initial_basis() const {
2353  return exploit_singleton_column_in_initial_basis_;
2354 }
2356  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2357  return _internal_exploit_singleton_column_in_initial_basis();
2358 }
2359 inline void GlopParameters::_internal_set_exploit_singleton_column_in_initial_basis(bool value) {
2360  _has_bits_[1] |= 0x00000800u;
2361  exploit_singleton_column_in_initial_basis_ = value;
2362 }
2364  _internal_set_exploit_singleton_column_in_initial_basis(value);
2365  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2366 }
2367 
2368 // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
2369 inline bool GlopParameters::_internal_has_dual_small_pivot_threshold() const {
2370  bool value = (_has_bits_[0] & 0x40000000u) != 0;
2371  return value;
2372 }
2374  return _internal_has_dual_small_pivot_threshold();
2375 }
2377  dual_small_pivot_threshold_ = 0.0001;
2378  _has_bits_[0] &= ~0x40000000u;
2379 }
2380 inline double GlopParameters::_internal_dual_small_pivot_threshold() const {
2381  return dual_small_pivot_threshold_;
2382 }
2384  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2385  return _internal_dual_small_pivot_threshold();
2386 }
2387 inline void GlopParameters::_internal_set_dual_small_pivot_threshold(double value) {
2388  _has_bits_[0] |= 0x40000000u;
2389  dual_small_pivot_threshold_ = value;
2390 }
2392  _internal_set_dual_small_pivot_threshold(value);
2393  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2394 }
2395 
2396 // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
2397 inline bool GlopParameters::_internal_has_preprocessor_zero_tolerance() const {
2398  bool value = (_has_bits_[0] & 0x80000000u) != 0;
2399  return value;
2400 }
2402  return _internal_has_preprocessor_zero_tolerance();
2403 }
2405  preprocessor_zero_tolerance_ = 1e-09;
2406  _has_bits_[0] &= ~0x80000000u;
2407 }
2408 inline double GlopParameters::_internal_preprocessor_zero_tolerance() const {
2409  return preprocessor_zero_tolerance_;
2410 }
2412  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2413  return _internal_preprocessor_zero_tolerance();
2414 }
2415 inline void GlopParameters::_internal_set_preprocessor_zero_tolerance(double value) {
2416  _has_bits_[0] |= 0x80000000u;
2417  preprocessor_zero_tolerance_ = value;
2418 }
2420  _internal_set_preprocessor_zero_tolerance(value);
2421  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2422 }
2423 
2424 // optional double objective_lower_limit = 40 [default = -inf];
2425 inline bool GlopParameters::_internal_has_objective_lower_limit() const {
2426  bool value = (_has_bits_[1] & 0x00000001u) != 0;
2427  return value;
2428 }
2430  return _internal_has_objective_lower_limit();
2431 }
2433  objective_lower_limit_ = -std::numeric_limits<double>::infinity();
2434  _has_bits_[1] &= ~0x00000001u;
2435 }
2436 inline double GlopParameters::_internal_objective_lower_limit() const {
2437  return objective_lower_limit_;
2438 }
2440  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_lower_limit)
2441  return _internal_objective_lower_limit();
2442 }
2443 inline void GlopParameters::_internal_set_objective_lower_limit(double value) {
2444  _has_bits_[1] |= 0x00000001u;
2445  objective_lower_limit_ = value;
2446 }
2448  _internal_set_objective_lower_limit(value);
2449  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_lower_limit)
2450 }
2451 
2452 // optional double objective_upper_limit = 41 [default = inf];
2453 inline bool GlopParameters::_internal_has_objective_upper_limit() const {
2454  bool value = (_has_bits_[1] & 0x00000002u) != 0;
2455  return value;
2456 }
2458  return _internal_has_objective_upper_limit();
2459 }
2461  objective_upper_limit_ = std::numeric_limits<double>::infinity();
2462  _has_bits_[1] &= ~0x00000002u;
2463 }
2464 inline double GlopParameters::_internal_objective_upper_limit() const {
2465  return objective_upper_limit_;
2466 }
2468  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_upper_limit)
2469  return _internal_objective_upper_limit();
2470 }
2471 inline void GlopParameters::_internal_set_objective_upper_limit(double value) {
2472  _has_bits_[1] |= 0x00000002u;
2473  objective_upper_limit_ = value;
2474 }
2476  _internal_set_objective_upper_limit(value);
2477  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_upper_limit)
2478 }
2479 
2480 // optional double degenerate_ministep_factor = 42 [default = 0.01];
2481 inline bool GlopParameters::_internal_has_degenerate_ministep_factor() const {
2482  bool value = (_has_bits_[1] & 0x00000080u) != 0;
2483  return value;
2484 }
2486  return _internal_has_degenerate_ministep_factor();
2487 }
2489  degenerate_ministep_factor_ = 0.01;
2490  _has_bits_[1] &= ~0x00000080u;
2491 }
2492 inline double GlopParameters::_internal_degenerate_ministep_factor() const {
2493  return degenerate_ministep_factor_;
2494 }
2496  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2497  return _internal_degenerate_ministep_factor();
2498 }
2499 inline void GlopParameters::_internal_set_degenerate_ministep_factor(double value) {
2500  _has_bits_[1] |= 0x00000080u;
2501  degenerate_ministep_factor_ = value;
2502 }
2504  _internal_set_degenerate_ministep_factor(value);
2505  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2506 }
2507 
2508 // optional int32 random_seed = 43 [default = 1];
2509 inline bool GlopParameters::_internal_has_random_seed() const {
2510  bool value = (_has_bits_[1] & 0x00000040u) != 0;
2511  return value;
2512 }
2513 inline bool GlopParameters::has_random_seed() const {
2514  return _internal_has_random_seed();
2515 }
2517  random_seed_ = 1;
2518  _has_bits_[1] &= ~0x00000040u;
2519 }
2520 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_random_seed() const {
2521  return random_seed_;
2522 }
2523 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::random_seed() const {
2524  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.random_seed)
2525  return _internal_random_seed();
2526 }
2527 inline void GlopParameters::_internal_set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value) {
2528  _has_bits_[1] |= 0x00000040u;
2529  random_seed_ = value;
2530 }
2531 inline void GlopParameters::set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value) {
2532  _internal_set_random_seed(value);
2533  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.random_seed)
2534 }
2535 
2536 // optional int32 num_omp_threads = 44 [default = 1];
2537 inline bool GlopParameters::_internal_has_num_omp_threads() const {
2538  bool value = (_has_bits_[1] & 0x00000400u) != 0;
2539  return value;
2540 }
2542  return _internal_has_num_omp_threads();
2543 }
2545  num_omp_threads_ = 1;
2546  _has_bits_[1] &= ~0x00000400u;
2547 }
2548 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_num_omp_threads() const {
2549  return num_omp_threads_;
2550 }
2551 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::num_omp_threads() const {
2552  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.num_omp_threads)
2553  return _internal_num_omp_threads();
2554 }
2555 inline void GlopParameters::_internal_set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value) {
2556  _has_bits_[1] |= 0x00000400u;
2557  num_omp_threads_ = value;
2558 }
2559 inline void GlopParameters::set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value) {
2560  _internal_set_num_omp_threads(value);
2561  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.num_omp_threads)
2562 }
2563 
2564 // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
2565 inline bool GlopParameters::_internal_has_perturb_costs_in_dual_simplex() const {
2566  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2567  return value;
2568 }
2570  return _internal_has_perturb_costs_in_dual_simplex();
2571 }
2573  perturb_costs_in_dual_simplex_ = false;
2574  _has_bits_[0] &= ~0x00000004u;
2575 }
2576 inline bool GlopParameters::_internal_perturb_costs_in_dual_simplex() const {
2577  return perturb_costs_in_dual_simplex_;
2578 }
2580  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2581  return _internal_perturb_costs_in_dual_simplex();
2582 }
2583 inline void GlopParameters::_internal_set_perturb_costs_in_dual_simplex(bool value) {
2584  _has_bits_[0] |= 0x00000004u;
2585  perturb_costs_in_dual_simplex_ = value;
2586 }
2588  _internal_set_perturb_costs_in_dual_simplex(value);
2589  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2590 }
2591 
2592 // optional bool use_dedicated_dual_feasibility_algorithm = 62 [default = true];
2593 inline bool GlopParameters::_internal_has_use_dedicated_dual_feasibility_algorithm() const {
2594  bool value = (_has_bits_[1] & 0x00001000u) != 0;
2595  return value;
2596 }
2598  return _internal_has_use_dedicated_dual_feasibility_algorithm();
2599 }
2601  use_dedicated_dual_feasibility_algorithm_ = true;
2602  _has_bits_[1] &= ~0x00001000u;
2603 }
2604 inline bool GlopParameters::_internal_use_dedicated_dual_feasibility_algorithm() const {
2605  return use_dedicated_dual_feasibility_algorithm_;
2606 }
2608  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_dedicated_dual_feasibility_algorithm)
2609  return _internal_use_dedicated_dual_feasibility_algorithm();
2610 }
2611 inline void GlopParameters::_internal_set_use_dedicated_dual_feasibility_algorithm(bool value) {
2612  _has_bits_[1] |= 0x00001000u;
2613  use_dedicated_dual_feasibility_algorithm_ = value;
2614 }
2616  _internal_set_use_dedicated_dual_feasibility_algorithm(value);
2617  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_dedicated_dual_feasibility_algorithm)
2618 }
2619 
2620 // optional double relative_cost_perturbation = 54 [default = 1e-05];
2621 inline bool GlopParameters::_internal_has_relative_cost_perturbation() const {
2622  bool value = (_has_bits_[1] & 0x00004000u) != 0;
2623  return value;
2624 }
2626  return _internal_has_relative_cost_perturbation();
2627 }
2629  relative_cost_perturbation_ = 1e-05;
2630  _has_bits_[1] &= ~0x00004000u;
2631 }
2632 inline double GlopParameters::_internal_relative_cost_perturbation() const {
2633  return relative_cost_perturbation_;
2634 }
2636  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_cost_perturbation)
2637  return _internal_relative_cost_perturbation();
2638 }
2639 inline void GlopParameters::_internal_set_relative_cost_perturbation(double value) {
2640  _has_bits_[1] |= 0x00004000u;
2641  relative_cost_perturbation_ = value;
2642 }
2644  _internal_set_relative_cost_perturbation(value);
2645  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_cost_perturbation)
2646 }
2647 
2648 // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
2649 inline bool GlopParameters::_internal_has_relative_max_cost_perturbation() const {
2650  bool value = (_has_bits_[1] & 0x00008000u) != 0;
2651  return value;
2652 }
2654  return _internal_has_relative_max_cost_perturbation();
2655 }
2657  relative_max_cost_perturbation_ = 1e-07;
2658  _has_bits_[1] &= ~0x00008000u;
2659 }
2660 inline double GlopParameters::_internal_relative_max_cost_perturbation() const {
2661  return relative_max_cost_perturbation_;
2662 }
2664  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2665  return _internal_relative_max_cost_perturbation();
2666 }
2667 inline void GlopParameters::_internal_set_relative_max_cost_perturbation(double value) {
2668  _has_bits_[1] |= 0x00008000u;
2669  relative_max_cost_perturbation_ = value;
2670 }
2672  _internal_set_relative_max_cost_perturbation(value);
2673  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2674 }
2675 
2676 // optional double initial_condition_number_threshold = 59 [default = 1e+50];
2677 inline bool GlopParameters::_internal_has_initial_condition_number_threshold() const {
2678  bool value = (_has_bits_[1] & 0x00080000u) != 0;
2679  return value;
2680 }
2682  return _internal_has_initial_condition_number_threshold();
2683 }
2685  initial_condition_number_threshold_ = 1e+50;
2686  _has_bits_[1] &= ~0x00080000u;
2687 }
2688 inline double GlopParameters::_internal_initial_condition_number_threshold() const {
2689  return initial_condition_number_threshold_;
2690 }
2692  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2693  return _internal_initial_condition_number_threshold();
2694 }
2695 inline void GlopParameters::_internal_set_initial_condition_number_threshold(double value) {
2696  _has_bits_[1] |= 0x00080000u;
2697  initial_condition_number_threshold_ = value;
2698 }
2700  _internal_set_initial_condition_number_threshold(value);
2701  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2702 }
2703 
2704 // optional bool log_search_progress = 61 [default = false];
2705 inline bool GlopParameters::_internal_has_log_search_progress() const {
2706  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2707  return value;
2708 }
2710  return _internal_has_log_search_progress();
2711 }
2713  log_search_progress_ = false;
2714  _has_bits_[0] &= ~0x00000008u;
2715 }
2716 inline bool GlopParameters::_internal_log_search_progress() const {
2717  return log_search_progress_;
2718 }
2720  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.log_search_progress)
2721  return _internal_log_search_progress();
2722 }
2723 inline void GlopParameters::_internal_set_log_search_progress(bool value) {
2724  _has_bits_[0] |= 0x00000008u;
2725  log_search_progress_ = value;
2726 }
2728  _internal_set_log_search_progress(value);
2729  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.log_search_progress)
2730 }
2731 
2732 // optional double crossover_bound_snapping_distance = 64 [default = inf];
2733 inline bool GlopParameters::_internal_has_crossover_bound_snapping_distance() const {
2734  bool value = (_has_bits_[1] & 0x00100000u) != 0;
2735  return value;
2736 }
2738  return _internal_has_crossover_bound_snapping_distance();
2739 }
2741  crossover_bound_snapping_distance_ = std::numeric_limits<double>::infinity();
2742  _has_bits_[1] &= ~0x00100000u;
2743 }
2744 inline double GlopParameters::_internal_crossover_bound_snapping_distance() const {
2745  return crossover_bound_snapping_distance_;
2746 }
2748  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.crossover_bound_snapping_distance)
2749  return _internal_crossover_bound_snapping_distance();
2750 }
2751 inline void GlopParameters::_internal_set_crossover_bound_snapping_distance(double value) {
2752  _has_bits_[1] |= 0x00100000u;
2753  crossover_bound_snapping_distance_ = value;
2754 }
2756  _internal_set_crossover_bound_snapping_distance(value);
2757  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.crossover_bound_snapping_distance)
2758 }
2759 
2760 // optional bool push_to_vertex = 65 [default = true];
2761 inline bool GlopParameters::_internal_has_push_to_vertex() const {
2762  bool value = (_has_bits_[1] & 0x00002000u) != 0;
2763  return value;
2764 }
2766  return _internal_has_push_to_vertex();
2767 }
2769  push_to_vertex_ = true;
2770  _has_bits_[1] &= ~0x00002000u;
2771 }
2772 inline bool GlopParameters::_internal_push_to_vertex() const {
2773  return push_to_vertex_;
2774 }
2775 inline bool GlopParameters::push_to_vertex() const {
2776  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.push_to_vertex)
2777  return _internal_push_to_vertex();
2778 }
2779 inline void GlopParameters::_internal_set_push_to_vertex(bool value) {
2780  _has_bits_[1] |= 0x00002000u;
2781  push_to_vertex_ = value;
2782 }
2784  _internal_set_push_to_vertex(value);
2785  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.push_to_vertex)
2786 }
2787 
2788 #ifdef __GNUC__
2789  #pragma GCC diagnostic pop
2790 #endif // __GNUC__
2791 
2792 // @@protoc_insertion_point(namespace_scope)
2793 
2794 } // namespace glop
2795 } // namespace operations_research
2796 
2797 PROTOBUF_NAMESPACE_OPEN
2798 
2799 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_ScalingAlgorithm> : ::std::true_type {};
2800 template <>
2801 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_ScalingAlgorithm>() {
2803 }
2804 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_SolverBehavior> : ::std::true_type {};
2805 template <>
2806 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_SolverBehavior>() {
2808 }
2809 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_PricingRule> : ::std::true_type {};
2810 template <>
2811 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_PricingRule>() {
2813 }
2814 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_InitialBasisHeuristic> : ::std::true_type {};
2815 template <>
2816 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_InitialBasisHeuristic>() {
2818 }
2819 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_CostScalingAlgorithm> : ::std::true_type {};
2820 template <>
2821 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_CostScalingAlgorithm>() {
2823 }
2824 
2825 PROTOBUF_NAMESPACE_CLOSE
2826 
2827 // @@protoc_insertion_point(global_scope)
2828 
2829 #include <google/protobuf/port_undef.inc>
2830 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fglop_2fparameters_2eproto
static constexpr InitialBasisHeuristic NONE
GlopParameters(GlopParameters &&from) noexcept
GlopParameters & operator=(const GlopParameters &from)
static constexpr int CostScalingAlgorithm_ARRAYSIZE
void MergeFrom(const GlopParameters &from)
static constexpr CostScalingAlgorithm NO_COST_SCALING
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
Definition: parameters.pb.h:52
void set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value)
static const std::string & ScalingAlgorithm_Name(T enum_t_value)
void Swap(GlopParameters *other)
constexpr GlopParameters_SolverBehavior GlopParameters_SolverBehavior_SolverBehavior_MAX
::PROTOBUF_NAMESPACE_ID::int32 devex_weights_reset_period() const
static constexpr SolverBehavior NEVER_DO
void set_solution_feasibility_tolerance(double value)
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: parameters.pb.h:54
void set_markowitz_singularity_threshold(double value)
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
Definition: parameters.pb.h:53
constexpr int GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_ARRAYSIZE
static constexpr CostScalingAlgorithm CONTAIN_ONE_COST_SCALING
static constexpr SolverBehavior SolverBehavior_MAX
static bool CostScalingAlgorithm_IsValid(int value)
void set_initial_condition_number_threshold(double value)
static constexpr ScalingAlgorithm DEFAULT
void set_lu_factorization_pivot_threshold(double value)
static constexpr PricingRule PricingRule_MIN
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_PricingRule_descriptor()
static const std::string & PricingRule_Name(T enum_t_value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
constexpr GlopParameters_ScalingAlgorithm GlopParameters_ScalingAlgorithm_ScalingAlgorithm_MAX
Definition: parameters.pb.h:77
void UnsafeArenaSwap(GlopParameters *other)
void set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value)
const std::string name
bool GlopParameters_ScalingAlgorithm_IsValid(int value)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr int ScalingAlgorithm_ARRAYSIZE
bool GlopParameters_PricingRule_IsValid(int value)
void set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static bool PricingRule_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_CostScalingAlgorithm_descriptor()
constexpr int GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_ARRAYSIZE
GlopParameters_CostScalingAlgorithm CostScalingAlgorithm
::PROTOBUF_NAMESPACE_ID::int32 random_seed() const
constexpr GlopParameters_PricingRule GlopParameters_PricingRule_PricingRule_MAX
friend void swap(GlopParameters &a, GlopParameters &b)
static bool PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PricingRule *value)
static constexpr ScalingAlgorithm ScalingAlgorithm_MIN
static const std::string & CostScalingAlgorithm_Name(T enum_t_value)
bool GlopParameters_CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_CostScalingAlgorithm *value)
::PROTOBUF_NAMESPACE_ID::int32 basis_refactorization_period() const
constexpr GlopParameters_CostScalingAlgorithm GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_MIN
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CostScalingAlgorithm_descriptor()
constexpr GlopParameters_PricingRule GlopParameters_PricingRule_PricingRule_MIN
int64_t b
void set_dynamically_adjust_refactorization_period(bool value)
constexpr int GlopParameters_SolverBehavior_SolverBehavior_ARRAYSIZE
void set_crossover_bound_snapping_distance(double value)
static bool InitialBasisHeuristic_IsValid(int value)
GlopParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::operations_research::glop::GlopParameters_InitialBasisHeuristic initial_basis() const
static constexpr CostScalingAlgorithm MEAN_COST_SCALING
static bool InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, InitialBasisHeuristic *value)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
void set_recompute_reduced_costs_threshold(double value)
void set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value)
constexpr int GlopParameters_PricingRule_PricingRule_ARRAYSIZE
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_SolverBehavior_descriptor()
static constexpr InitialBasisHeuristic BIXBY
static constexpr InitialBasisHeuristic MAROS
bool GlopParameters_SolverBehavior_IsValid(int value)
bool GlopParameters_CostScalingAlgorithm_IsValid(int value)
static constexpr SolverBehavior ALWAYS_DO
::operations_research::glop::GlopParameters_PricingRule optimization_rule() const
GlopParameters * New() const final
GlopParameters_SolverBehavior SolverBehavior
static constexpr SolverBehavior LET_SOLVER_DECIDE
static constexpr PricingRule STEEPEST_EDGE
void set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value)
static constexpr SolverBehavior SolverBehavior_MIN
void set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value)
void set_recompute_edges_norm_threshold(double value)
static constexpr PricingRule DEVEX
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr PricingRule PricingRule_MAX
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_use_dedicated_dual_feasibility_algorithm(bool value)
static constexpr CostScalingAlgorithm CostScalingAlgorithm_MAX
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static constexpr ScalingAlgorithm EQUILIBRATION
static bool SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, SolverBehavior *value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * ScalingAlgorithm_descriptor()
static constexpr ScalingAlgorithm LINEAR_PROGRAM
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * PricingRule_descriptor()
::operations_research::glop::GlopParameters_SolverBehavior solve_dual_problem() const
void CopyFrom(const GlopParameters &from)
bool GlopParameters_SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_SolverBehavior *value)
void set_relative_max_cost_perturbation(double value)
bool GlopParameters_ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_ScalingAlgorithm *value)
Definition: parameters.pb.h:89
const std::string & GlopParameters_PricingRule_Name(T enum_t_value)
static constexpr InitialBasisHeuristic TRIANGULAR
static bool ScalingAlgorithm_IsValid(int value)
::operations_research::glop::GlopParameters_CostScalingAlgorithm cost_scaling() const
constexpr GlopParameters_InitialBasisHeuristic GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_MAX
::PROTOBUF_NAMESPACE_ID::int32 num_omp_threads() const
constexpr GlopParameters_CostScalingAlgorithm GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_MAX
constexpr GlopParameters_ScalingAlgorithm GlopParameters_ScalingAlgorithm_ScalingAlgorithm_MIN
Definition: parameters.pb.h:76
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
static const std::string & SolverBehavior_Name(T enum_t_value)
GlopParameters & operator=(GlopParameters &&from) noexcept
const std::string & GlopParameters_InitialBasisHeuristic_Name(T enum_t_value)
::operations_research::glop::GlopParameters_PricingRule feasibility_rule() const
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::int32 markowitz_zlatev_parameter() const
static constexpr PricingRule DANTZIG
constexpr GlopParameters_SolverBehavior GlopParameters_SolverBehavior_SolverBehavior_MIN
static const std::string & InitialBasisHeuristic_Name(T enum_t_value)
static constexpr int InitialBasisHeuristic_ARRAYSIZE
static bool CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CostScalingAlgorithm *value)
static constexpr ScalingAlgorithm ScalingAlgorithm_MAX
GlopParameters_PricingRule PricingRule
static constexpr CostScalingAlgorithm CostScalingAlgorithm_MIN
Collection of objects used to extend the Constraint Solver library.
::PROTOBUF_NAMESPACE_ID::int64 max_number_of_iterations() const
bool GlopParameters_InitialBasisHeuristic_IsValid(int value)
constexpr GlopParameters_InitialBasisHeuristic GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_MIN
bool GlopParameters_InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_InitialBasisHeuristic *value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT GlopParametersDefaultTypeInternal _GlopParameters_default_instance_
const std::string & GlopParameters_SolverBehavior_Name(T enum_t_value)
void set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_ScalingAlgorithm_descriptor()
::operations_research::glop::GlopParameters_ScalingAlgorithm scaling_method() const
void set_exploit_singleton_column_in_initial_basis(bool value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SolverBehavior_descriptor()
const std::string & GlopParameters_ScalingAlgorithm_Name(T enum_t_value)
Definition: parameters.pb.h:82
static constexpr CostScalingAlgorithm MEDIAN_COST_SCALING
static const GlopParameters & default_instance()
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
void set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value)
void set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value)
void set_max_number_of_reoptimizations(double value)
static constexpr InitialBasisHeuristic InitialBasisHeuristic_MIN
static constexpr InitialBasisHeuristic InitialBasisHeuristic_MAX
int64_t value
static bool SolverBehavior_IsValid(int value)
static const GlopParameters * internal_default_instance()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * InitialBasisHeuristic_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_InitialBasisHeuristic_descriptor()
void set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value)
const std::string & GlopParameters_CostScalingAlgorithm_Name(T enum_t_value)
GlopParameters_InitialBasisHeuristic InitialBasisHeuristic
static bool ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ScalingAlgorithm *value)
bool GlopParameters_PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_PricingRule *value)
constexpr int GlopParameters_ScalingAlgorithm_ScalingAlgorithm_ARRAYSIZE
Definition: parameters.pb.h:78
int64_t a
void set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value)
void set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value)