OR-Tools  9.2
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 < 3019000
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 3019001 < 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 uint32_t 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  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
215  && GetOwningArena() != nullptr
216  #endif // !PROTOBUF_FORCE_COPY_IN_MOVE
217  ) {
218  InternalSwap(&from);
219  } else {
220  CopyFrom(from);
221  }
222  return *this;
223  }
224 
225  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
226  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
227  }
228  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
229  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
230  }
231 
232  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
233  return GetDescriptor();
234  }
235  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
236  return default_instance().GetMetadata().descriptor;
237  }
238  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
239  return default_instance().GetMetadata().reflection;
240  }
242  return *internal_default_instance();
243  }
244  static inline const GlopParameters* internal_default_instance() {
245  return reinterpret_cast<const GlopParameters*>(
247  }
248  static constexpr int kIndexInFileMessages =
249  0;
250 
252  a.Swap(&b);
253  }
254  inline void Swap(GlopParameters* other) {
255  if (other == this) return;
256  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
257  if (GetOwningArena() != nullptr &&
258  GetOwningArena() == other->GetOwningArena()) {
259  #else // PROTOBUF_FORCE_COPY_IN_SWAP
260  if (GetOwningArena() == other->GetOwningArena()) {
261  #endif // !PROTOBUF_FORCE_COPY_IN_SWAP
262  InternalSwap(other);
263  } else {
264  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
265  }
266  }
268  if (other == this) return;
269  GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
270  InternalSwap(other);
271  }
272 
273  // implements Message ----------------------------------------------
274 
275  GlopParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
276  return CreateMaybeMessage<GlopParameters>(arena);
277  }
278  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
279  void CopyFrom(const GlopParameters& from);
280  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
281  void MergeFrom(const GlopParameters& from);
282  private:
283  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from);
284  public:
285  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
286  bool IsInitialized() const final;
287 
288  size_t ByteSizeLong() const final;
289  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
290  uint8_t* _InternalSerialize(
291  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
292  int GetCachedSize() const final { return _cached_size_.Get(); }
293 
294  private:
295  void SharedCtor();
296  void SharedDtor();
297  void SetCachedSize(int size) const final;
298  void InternalSwap(GlopParameters* other);
299 
300  private:
301  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
302  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
303  return "operations_research.glop.GlopParameters";
304  }
305  protected:
306  explicit GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena,
307  bool is_message_owned = false);
308  private:
309  static void ArenaDtor(void* object);
310  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
311  public:
312 
313  static const ClassData _class_data_;
314  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
315 
316  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
317 
318  // nested types ----------------------------------------------------
319 
321  static constexpr ScalingAlgorithm DEFAULT =
323  static constexpr ScalingAlgorithm EQUILIBRATION =
325  static constexpr ScalingAlgorithm LINEAR_PROGRAM =
327  static inline bool ScalingAlgorithm_IsValid(int value) {
329  }
334  static constexpr int ScalingAlgorithm_ARRAYSIZE =
336  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
339  }
340  template<typename T>
341  static inline const std::string& ScalingAlgorithm_Name(T enum_t_value) {
344  "Incorrect type passed to function ScalingAlgorithm_Name.");
345  return GlopParameters_ScalingAlgorithm_Name(enum_t_value);
346  }
347  static inline bool ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
350  }
351 
353  static constexpr SolverBehavior ALWAYS_DO =
355  static constexpr SolverBehavior NEVER_DO =
359  static inline bool SolverBehavior_IsValid(int value) {
361  }
366  static constexpr int SolverBehavior_ARRAYSIZE =
368  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
371  }
372  template<typename T>
373  static inline const std::string& SolverBehavior_Name(T enum_t_value) {
374  static_assert(::std::is_same<T, SolverBehavior>::value ||
376  "Incorrect type passed to function SolverBehavior_Name.");
377  return GlopParameters_SolverBehavior_Name(enum_t_value);
378  }
379  static inline bool SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
382  }
383 
385  static constexpr PricingRule DANTZIG =
387  static constexpr PricingRule STEEPEST_EDGE =
389  static constexpr PricingRule DEVEX =
391  static inline bool PricingRule_IsValid(int value) {
393  }
394  static constexpr PricingRule PricingRule_MIN =
396  static constexpr PricingRule PricingRule_MAX =
398  static constexpr int PricingRule_ARRAYSIZE =
400  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
403  }
404  template<typename T>
405  static inline const std::string& PricingRule_Name(T enum_t_value) {
406  static_assert(::std::is_same<T, PricingRule>::value ||
408  "Incorrect type passed to function PricingRule_Name.");
409  return GlopParameters_PricingRule_Name(enum_t_value);
410  }
411  static inline bool PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
412  PricingRule* value) {
414  }
415 
417  static constexpr InitialBasisHeuristic NONE =
419  static constexpr InitialBasisHeuristic BIXBY =
423  static constexpr InitialBasisHeuristic MAROS =
425  static inline bool InitialBasisHeuristic_IsValid(int value) {
427  }
432  static constexpr int InitialBasisHeuristic_ARRAYSIZE =
434  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
437  }
438  template<typename T>
439  static inline const std::string& InitialBasisHeuristic_Name(T enum_t_value) {
442  "Incorrect type passed to function InitialBasisHeuristic_Name.");
443  return GlopParameters_InitialBasisHeuristic_Name(enum_t_value);
444  }
445  static inline bool InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
448  }
449 
459  static inline bool CostScalingAlgorithm_IsValid(int value) {
461  }
466  static constexpr int CostScalingAlgorithm_ARRAYSIZE =
468  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
471  }
472  template<typename T>
473  static inline const std::string& CostScalingAlgorithm_Name(T enum_t_value) {
476  "Incorrect type passed to function CostScalingAlgorithm_Name.");
477  return GlopParameters_CostScalingAlgorithm_Name(enum_t_value);
478  }
479  static inline bool CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
482  }
483 
484  // accessors -------------------------------------------------------
485 
486  enum : int {
542  };
543  // optional bool use_dual_simplex = 31 [default = false];
544  bool has_use_dual_simplex() const;
545  private:
546  bool _internal_has_use_dual_simplex() const;
547  public:
548  void clear_use_dual_simplex();
549  bool use_dual_simplex() const;
550  void set_use_dual_simplex(bool value);
551  private:
552  bool _internal_use_dual_simplex() const;
553  void _internal_set_use_dual_simplex(bool value);
554  public:
555 
556  // optional bool allow_simplex_algorithm_change = 32 [default = false];
558  private:
559  bool _internal_has_allow_simplex_algorithm_change() const;
560  public:
562  bool allow_simplex_algorithm_change() const;
564  private:
565  bool _internal_allow_simplex_algorithm_change() const;
566  void _internal_set_allow_simplex_algorithm_change(bool value);
567  public:
568 
569  // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
571  private:
572  bool _internal_has_perturb_costs_in_dual_simplex() const;
573  public:
575  bool perturb_costs_in_dual_simplex() const;
577  private:
578  bool _internal_perturb_costs_in_dual_simplex() const;
579  void _internal_set_perturb_costs_in_dual_simplex(bool value);
580  public:
581 
582  // optional bool log_search_progress = 61 [default = false];
583  bool has_log_search_progress() const;
584  private:
585  bool _internal_has_log_search_progress() const;
586  public:
588  bool log_search_progress() const;
589  void set_log_search_progress(bool value);
590  private:
591  bool _internal_log_search_progress() const;
592  void _internal_set_log_search_progress(bool value);
593  public:
594 
595  // optional bool use_implied_free_preprocessor = 67 [default = true];
597  private:
598  bool _internal_has_use_implied_free_preprocessor() const;
599  public:
601  bool use_implied_free_preprocessor() const;
603  private:
604  bool _internal_use_implied_free_preprocessor() const;
605  void _internal_set_use_implied_free_preprocessor(bool value);
606  public:
607 
608  // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
609  bool has_feasibility_rule() const;
610  private:
611  bool _internal_has_feasibility_rule() const;
612  public:
613  void clear_feasibility_rule();
616  private:
617  ::operations_research::glop::GlopParameters_PricingRule _internal_feasibility_rule() const;
618  void _internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value);
619  public:
620 
621  // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
622  bool has_optimization_rule() const;
623  private:
624  bool _internal_has_optimization_rule() const;
625  public:
629  private:
630  ::operations_research::glop::GlopParameters_PricingRule _internal_optimization_rule() const;
631  void _internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value);
632  public:
633 
634  // optional double refactorization_threshold = 6 [default = 1e-09];
635  bool has_refactorization_threshold() const;
636  private:
637  bool _internal_has_refactorization_threshold() const;
638  public:
640  double refactorization_threshold() const;
642  private:
643  double _internal_refactorization_threshold() const;
644  void _internal_set_refactorization_threshold(double value);
645  public:
646 
647  // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
649  private:
650  bool _internal_has_recompute_reduced_costs_threshold() const;
651  public:
653  double recompute_reduced_costs_threshold() const;
655  private:
656  double _internal_recompute_reduced_costs_threshold() const;
657  void _internal_set_recompute_reduced_costs_threshold(double value);
658  public:
659 
660  // optional double recompute_edges_norm_threshold = 9 [default = 100];
662  private:
663  bool _internal_has_recompute_edges_norm_threshold() const;
664  public:
666  double recompute_edges_norm_threshold() const;
668  private:
669  double _internal_recompute_edges_norm_threshold() const;
670  void _internal_set_recompute_edges_norm_threshold(double value);
671  public:
672 
673  // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
675  private:
676  bool _internal_has_primal_feasibility_tolerance() const;
677  public:
679  double primal_feasibility_tolerance() const;
681  private:
682  double _internal_primal_feasibility_tolerance() const;
683  void _internal_set_primal_feasibility_tolerance(double value);
684  public:
685 
686  // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
687  bool has_dual_feasibility_tolerance() const;
688  private:
689  bool _internal_has_dual_feasibility_tolerance() const;
690  public:
692  double dual_feasibility_tolerance() const;
694  private:
695  double _internal_dual_feasibility_tolerance() const;
696  void _internal_set_dual_feasibility_tolerance(double value);
697  public:
698 
699  // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
700  bool has_ratio_test_zero_threshold() const;
701  private:
702  bool _internal_has_ratio_test_zero_threshold() const;
703  public:
705  double ratio_test_zero_threshold() const;
707  private:
708  double _internal_ratio_test_zero_threshold() const;
709  void _internal_set_ratio_test_zero_threshold(double value);
710  public:
711 
712  // optional double harris_tolerance_ratio = 13 [default = 0.5];
713  bool has_harris_tolerance_ratio() const;
714  private:
715  bool _internal_has_harris_tolerance_ratio() const;
716  public:
718  double harris_tolerance_ratio() const;
719  void set_harris_tolerance_ratio(double value);
720  private:
721  double _internal_harris_tolerance_ratio() const;
722  void _internal_set_harris_tolerance_ratio(double value);
723  public:
724 
725  // optional double small_pivot_threshold = 14 [default = 1e-06];
726  bool has_small_pivot_threshold() const;
727  private:
728  bool _internal_has_small_pivot_threshold() const;
729  public:
731  double small_pivot_threshold() const;
732  void set_small_pivot_threshold(double value);
733  private:
734  double _internal_small_pivot_threshold() const;
735  void _internal_set_small_pivot_threshold(double value);
736  public:
737 
738  // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
739  bool has_minimum_acceptable_pivot() const;
740  private:
741  bool _internal_has_minimum_acceptable_pivot() const;
742  public:
744  double minimum_acceptable_pivot() const;
745  void set_minimum_acceptable_pivot(double value);
746  private:
747  double _internal_minimum_acceptable_pivot() const;
748  void _internal_set_minimum_acceptable_pivot(double value);
749  public:
750 
751  // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
752  bool has_initial_basis() const;
753  private:
754  bool _internal_has_initial_basis() const;
755  public:
756  void clear_initial_basis();
759  private:
762  public:
763 
764  // optional int32 basis_refactorization_period = 19 [default = 64];
766  private:
767  bool _internal_has_basis_refactorization_period() const;
768  public:
770  int32_t basis_refactorization_period() const;
772  private:
773  int32_t _internal_basis_refactorization_period() const;
774  void _internal_set_basis_refactorization_period(int32_t value);
775  public:
776 
777  // optional double dualizer_threshold = 21 [default = 1.5];
778  bool has_dualizer_threshold() const;
779  private:
780  bool _internal_has_dualizer_threshold() const;
781  public:
783  double dualizer_threshold() const;
784  void set_dualizer_threshold(double value);
785  private:
786  double _internal_dualizer_threshold() const;
787  void _internal_set_dualizer_threshold(double value);
788  public:
789 
790  // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
792  private:
793  bool _internal_has_solution_feasibility_tolerance() const;
794  public:
796  double solution_feasibility_tolerance() const;
798  private:
799  double _internal_solution_feasibility_tolerance() const;
800  void _internal_set_solution_feasibility_tolerance(double value);
801  public:
802 
803  // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
804  bool has_solve_dual_problem() const;
805  private:
806  bool _internal_has_solve_dual_problem() const;
807  public:
811  private:
812  ::operations_research::glop::GlopParameters_SolverBehavior _internal_solve_dual_problem() const;
813  void _internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value);
814  public:
815 
816  // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
817  bool has_markowitz_zlatev_parameter() const;
818  private:
819  bool _internal_has_markowitz_zlatev_parameter() const;
820  public:
822  int32_t markowitz_zlatev_parameter() const;
824  private:
825  int32_t _internal_markowitz_zlatev_parameter() const;
826  void _internal_set_markowitz_zlatev_parameter(int32_t value);
827  public:
828 
829  // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
831  private:
832  bool _internal_has_lu_factorization_pivot_threshold() const;
833  public:
835  double lu_factorization_pivot_threshold() const;
837  private:
838  double _internal_lu_factorization_pivot_threshold() const;
839  void _internal_set_lu_factorization_pivot_threshold(double value);
840  public:
841 
842  // optional double max_time_in_seconds = 26 [default = inf];
843  bool has_max_time_in_seconds() const;
844  private:
845  bool _internal_has_max_time_in_seconds() const;
846  public:
848  double max_time_in_seconds() const;
849  void set_max_time_in_seconds(double value);
850  private:
851  double _internal_max_time_in_seconds() const;
852  void _internal_set_max_time_in_seconds(double value);
853  public:
854 
855  // optional int64 max_number_of_iterations = 27 [default = -1];
856  bool has_max_number_of_iterations() const;
857  private:
858  bool _internal_has_max_number_of_iterations() const;
859  public:
861  int64_t max_number_of_iterations() const;
862  void set_max_number_of_iterations(int64_t value);
863  private:
864  int64_t _internal_max_number_of_iterations() const;
865  void _internal_set_max_number_of_iterations(int64_t value);
866  public:
867 
868  // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
870  private:
871  bool _internal_has_markowitz_singularity_threshold() const;
872  public:
874  double markowitz_singularity_threshold() const;
876  private:
877  double _internal_markowitz_singularity_threshold() const;
878  void _internal_set_markowitz_singularity_threshold(double value);
879  public:
880 
881  // optional bool use_scaling = 16 [default = true];
882  bool has_use_scaling() const;
883  private:
884  bool _internal_has_use_scaling() const;
885  public:
886  void clear_use_scaling();
887  bool use_scaling() const;
888  void set_use_scaling(bool value);
889  private:
890  bool _internal_use_scaling() const;
891  void _internal_set_use_scaling(bool value);
892  public:
893 
894  // optional bool use_transposed_matrix = 18 [default = true];
895  bool has_use_transposed_matrix() const;
896  private:
897  bool _internal_has_use_transposed_matrix() const;
898  public:
900  bool use_transposed_matrix() const;
901  void set_use_transposed_matrix(bool value);
902  private:
903  bool _internal_use_transposed_matrix() const;
904  void _internal_set_use_transposed_matrix(bool value);
905  public:
906 
907  // optional bool dynamically_adjust_refactorization_period = 63 [default = true];
909  private:
910  bool _internal_has_dynamically_adjust_refactorization_period() const;
911  public:
915  private:
916  bool _internal_dynamically_adjust_refactorization_period() const;
917  void _internal_set_dynamically_adjust_refactorization_period(bool value);
918  public:
919 
920  // optional bool provide_strong_optimal_guarantee = 24 [default = true];
922  private:
923  bool _internal_has_provide_strong_optimal_guarantee() const;
924  public:
928  private:
929  bool _internal_provide_strong_optimal_guarantee() const;
930  void _internal_set_provide_strong_optimal_guarantee(bool value);
931  public:
932 
933  // optional int32 devex_weights_reset_period = 33 [default = 150];
934  bool has_devex_weights_reset_period() const;
935  private:
936  bool _internal_has_devex_weights_reset_period() const;
937  public:
939  int32_t devex_weights_reset_period() const;
941  private:
942  int32_t _internal_devex_weights_reset_period() const;
943  void _internal_set_devex_weights_reset_period(int32_t value);
944  public:
945 
946  // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
947  bool has_dual_small_pivot_threshold() const;
948  private:
949  bool _internal_has_dual_small_pivot_threshold() const;
950  public:
952  double dual_small_pivot_threshold() const;
954  private:
955  double _internal_dual_small_pivot_threshold() const;
956  void _internal_set_dual_small_pivot_threshold(double value);
957  public:
958 
959  // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
960  bool has_preprocessor_zero_tolerance() const;
961  private:
962  bool _internal_has_preprocessor_zero_tolerance() const;
963  public:
965  double preprocessor_zero_tolerance() const;
967  private:
968  double _internal_preprocessor_zero_tolerance() const;
969  void _internal_set_preprocessor_zero_tolerance(double value);
970  public:
971 
972  // optional double objective_lower_limit = 40 [default = -inf];
973  bool has_objective_lower_limit() const;
974  private:
975  bool _internal_has_objective_lower_limit() const;
976  public:
978  double objective_lower_limit() const;
979  void set_objective_lower_limit(double value);
980  private:
981  double _internal_objective_lower_limit() const;
982  void _internal_set_objective_lower_limit(double value);
983  public:
984 
985  // optional double objective_upper_limit = 41 [default = inf];
986  bool has_objective_upper_limit() const;
987  private:
988  bool _internal_has_objective_upper_limit() const;
989  public:
991  double objective_upper_limit() const;
992  void set_objective_upper_limit(double value);
993  private:
994  double _internal_objective_upper_limit() const;
995  void _internal_set_objective_upper_limit(double value);
996  public:
997 
998  // optional bool change_status_to_imprecise = 58 [default = true];
999  bool has_change_status_to_imprecise() const;
1000  private:
1001  bool _internal_has_change_status_to_imprecise() const;
1002  public:
1004  bool change_status_to_imprecise() const;
1006  private:
1007  bool _internal_change_status_to_imprecise() const;
1008  void _internal_set_change_status_to_imprecise(bool value);
1009  public:
1010 
1011  // optional bool use_preprocessing = 34 [default = true];
1012  bool has_use_preprocessing() const;
1013  private:
1014  bool _internal_has_use_preprocessing() const;
1015  public:
1016  void clear_use_preprocessing();
1017  bool use_preprocessing() const;
1018  void set_use_preprocessing(bool value);
1019  private:
1020  bool _internal_use_preprocessing() const;
1021  void _internal_set_use_preprocessing(bool value);
1022  public:
1023 
1024  // optional bool use_middle_product_form_update = 35 [default = true];
1026  private:
1027  bool _internal_has_use_middle_product_form_update() const;
1028  public:
1030  bool use_middle_product_form_update() const;
1032  private:
1033  bool _internal_use_middle_product_form_update() const;
1034  void _internal_set_use_middle_product_form_update(bool value);
1035  public:
1036 
1037  // optional bool initialize_devex_with_column_norms = 36 [default = true];
1039  private:
1040  bool _internal_has_initialize_devex_with_column_norms() const;
1041  public:
1045  private:
1046  bool _internal_initialize_devex_with_column_norms() const;
1047  void _internal_set_initialize_devex_with_column_norms(bool value);
1048  public:
1049 
1050  // optional int32 random_seed = 43 [default = 1];
1051  bool has_random_seed() const;
1052  private:
1053  bool _internal_has_random_seed() const;
1054  public:
1055  void clear_random_seed();
1056  int32_t random_seed() const;
1057  void set_random_seed(int32_t value);
1058  private:
1059  int32_t _internal_random_seed() const;
1060  void _internal_set_random_seed(int32_t value);
1061  public:
1062 
1063  // optional double degenerate_ministep_factor = 42 [default = 0.01];
1064  bool has_degenerate_ministep_factor() const;
1065  private:
1066  bool _internal_has_degenerate_ministep_factor() const;
1067  public:
1069  double degenerate_ministep_factor() const;
1071  private:
1072  double _internal_degenerate_ministep_factor() const;
1073  void _internal_set_degenerate_ministep_factor(double value);
1074  public:
1075 
1076  // optional double max_deterministic_time = 45 [default = inf];
1077  bool has_max_deterministic_time() const;
1078  private:
1079  bool _internal_has_max_deterministic_time() const;
1080  public:
1082  double max_deterministic_time() const;
1083  void set_max_deterministic_time(double value);
1084  private:
1085  double _internal_max_deterministic_time() const;
1086  void _internal_set_max_deterministic_time(double value);
1087  public:
1088 
1089  // optional int32 num_omp_threads = 44 [default = 1];
1090  bool has_num_omp_threads() const;
1091  private:
1092  bool _internal_has_num_omp_threads() const;
1093  public:
1094  void clear_num_omp_threads();
1095  int32_t num_omp_threads() const;
1096  void set_num_omp_threads(int32_t value);
1097  private:
1098  int32_t _internal_num_omp_threads() const;
1099  void _internal_set_num_omp_threads(int32_t value);
1100  public:
1101 
1102  // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1103  bool has_scaling_method() const;
1104  private:
1105  bool _internal_has_scaling_method() const;
1106  public:
1107  void clear_scaling_method();
1110  private:
1111  ::operations_research::glop::GlopParameters_ScalingAlgorithm _internal_scaling_method() const;
1112  void _internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value);
1113  public:
1114 
1115  // optional double drop_tolerance = 52 [default = 1e-14];
1116  bool has_drop_tolerance() const;
1117  private:
1118  bool _internal_has_drop_tolerance() const;
1119  public:
1120  void clear_drop_tolerance();
1121  double drop_tolerance() const;
1122  void set_drop_tolerance(double value);
1123  private:
1124  double _internal_drop_tolerance() const;
1125  void _internal_set_drop_tolerance(double value);
1126  public:
1127 
1128  // optional double relative_cost_perturbation = 54 [default = 1e-05];
1129  bool has_relative_cost_perturbation() const;
1130  private:
1131  bool _internal_has_relative_cost_perturbation() const;
1132  public:
1134  double relative_cost_perturbation() const;
1136  private:
1137  double _internal_relative_cost_perturbation() const;
1138  void _internal_set_relative_cost_perturbation(double value);
1139  public:
1140 
1141  // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
1143  private:
1144  bool _internal_has_relative_max_cost_perturbation() const;
1145  public:
1147  double relative_max_cost_perturbation() const;
1149  private:
1150  double _internal_relative_max_cost_perturbation() const;
1151  void _internal_set_relative_max_cost_perturbation(double value);
1152  public:
1153 
1154  // optional double max_number_of_reoptimizations = 56 [default = 40];
1155  bool has_max_number_of_reoptimizations() const;
1156  private:
1157  bool _internal_has_max_number_of_reoptimizations() const;
1158  public:
1160  double max_number_of_reoptimizations() const;
1162  private:
1163  double _internal_max_number_of_reoptimizations() const;
1164  void _internal_set_max_number_of_reoptimizations(double value);
1165  public:
1166 
1167  // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
1169  private:
1170  bool _internal_has_exploit_singleton_column_in_initial_basis() const;
1171  public:
1175  private:
1176  bool _internal_exploit_singleton_column_in_initial_basis() const;
1177  void _internal_set_exploit_singleton_column_in_initial_basis(bool value);
1178  public:
1179 
1180  // optional bool use_dedicated_dual_feasibility_algorithm = 62 [default = true];
1182  private:
1183  bool _internal_has_use_dedicated_dual_feasibility_algorithm() const;
1184  public:
1188  private:
1189  bool _internal_use_dedicated_dual_feasibility_algorithm() const;
1190  void _internal_set_use_dedicated_dual_feasibility_algorithm(bool value);
1191  public:
1192 
1193  // optional bool log_to_stdout = 66 [default = true];
1194  bool has_log_to_stdout() const;
1195  private:
1196  bool _internal_has_log_to_stdout() const;
1197  public:
1198  void clear_log_to_stdout();
1199  bool log_to_stdout() const;
1200  void set_log_to_stdout(bool value);
1201  private:
1202  bool _internal_log_to_stdout() const;
1203  void _internal_set_log_to_stdout(bool value);
1204  public:
1205 
1206  // optional bool push_to_vertex = 65 [default = true];
1207  bool has_push_to_vertex() const;
1208  private:
1209  bool _internal_has_push_to_vertex() const;
1210  public:
1211  void clear_push_to_vertex();
1212  bool push_to_vertex() const;
1213  void set_push_to_vertex(bool value);
1214  private:
1215  bool _internal_push_to_vertex() const;
1216  void _internal_set_push_to_vertex(bool value);
1217  public:
1218 
1219  // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1220  bool has_cost_scaling() const;
1221  private:
1222  bool _internal_has_cost_scaling() const;
1223  public:
1224  void clear_cost_scaling();
1227  private:
1229  void _internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value);
1230  public:
1231 
1232  // optional double initial_condition_number_threshold = 59 [default = 1e+50];
1234  private:
1235  bool _internal_has_initial_condition_number_threshold() const;
1236  public:
1238  double initial_condition_number_threshold() const;
1240  private:
1241  double _internal_initial_condition_number_threshold() const;
1242  void _internal_set_initial_condition_number_threshold(double value);
1243  public:
1244 
1245  // optional double crossover_bound_snapping_distance = 64 [default = inf];
1247  private:
1248  bool _internal_has_crossover_bound_snapping_distance() const;
1249  public:
1251  double crossover_bound_snapping_distance() const;
1253  private:
1254  double _internal_crossover_bound_snapping_distance() const;
1255  void _internal_set_crossover_bound_snapping_distance(double value);
1256  public:
1257 
1258  // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
1259  private:
1260  class _Internal;
1261 
1262  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1263  typedef void InternalArenaConstructable_;
1264  typedef void DestructorSkippable_;
1265  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<2> _has_bits_;
1266  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1267  bool use_dual_simplex_;
1268  bool allow_simplex_algorithm_change_;
1269  bool perturb_costs_in_dual_simplex_;
1270  bool log_search_progress_;
1271  bool use_implied_free_preprocessor_;
1272  int feasibility_rule_;
1273  int optimization_rule_;
1274  double refactorization_threshold_;
1275  double recompute_reduced_costs_threshold_;
1276  double recompute_edges_norm_threshold_;
1277  double primal_feasibility_tolerance_;
1278  double dual_feasibility_tolerance_;
1279  double ratio_test_zero_threshold_;
1280  double harris_tolerance_ratio_;
1281  double small_pivot_threshold_;
1282  double minimum_acceptable_pivot_;
1283  int initial_basis_;
1284  int32_t basis_refactorization_period_;
1285  double dualizer_threshold_;
1286  double solution_feasibility_tolerance_;
1287  int solve_dual_problem_;
1288  int32_t markowitz_zlatev_parameter_;
1289  double lu_factorization_pivot_threshold_;
1290  double max_time_in_seconds_;
1291  int64_t max_number_of_iterations_;
1292  double markowitz_singularity_threshold_;
1293  bool use_scaling_;
1294  bool use_transposed_matrix_;
1295  bool dynamically_adjust_refactorization_period_;
1296  bool provide_strong_optimal_guarantee_;
1297  int32_t devex_weights_reset_period_;
1298  double dual_small_pivot_threshold_;
1299  double preprocessor_zero_tolerance_;
1300  double objective_lower_limit_;
1301  double objective_upper_limit_;
1302  bool change_status_to_imprecise_;
1303  bool use_preprocessing_;
1304  bool use_middle_product_form_update_;
1305  bool initialize_devex_with_column_norms_;
1306  int32_t random_seed_;
1307  double degenerate_ministep_factor_;
1308  double max_deterministic_time_;
1309  int32_t num_omp_threads_;
1310  int scaling_method_;
1311  double drop_tolerance_;
1312  double relative_cost_perturbation_;
1313  double relative_max_cost_perturbation_;
1314  double max_number_of_reoptimizations_;
1315  bool exploit_singleton_column_in_initial_basis_;
1316  bool use_dedicated_dual_feasibility_algorithm_;
1317  bool log_to_stdout_;
1318  bool push_to_vertex_;
1319  int cost_scaling_;
1320  double initial_condition_number_threshold_;
1321  double crossover_bound_snapping_distance_;
1322  friend struct ::TableStruct_ortools_2fglop_2fparameters_2eproto;
1323 };
1324 // ===================================================================
1325 
1326 
1327 // ===================================================================
1328 
1329 #ifdef __GNUC__
1330  #pragma GCC diagnostic push
1331  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1332 #endif // __GNUC__
1333 // GlopParameters
1334 
1335 // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1336 inline bool GlopParameters::_internal_has_scaling_method() const {
1337  bool value = (_has_bits_[1] & 0x00000800u) != 0;
1338  return value;
1339 }
1341  return _internal_has_scaling_method();
1342 }
1344  scaling_method_ = 1;
1345  _has_bits_[1] &= ~0x00000800u;
1346 }
1347 inline ::operations_research::glop::GlopParameters_ScalingAlgorithm GlopParameters::_internal_scaling_method() const {
1348  return static_cast< ::operations_research::glop::GlopParameters_ScalingAlgorithm >(scaling_method_);
1349 }
1351  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.scaling_method)
1352  return _internal_scaling_method();
1353 }
1354 inline void GlopParameters::_internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value) {
1356  _has_bits_[1] |= 0x00000800u;
1357  scaling_method_ = value;
1358 }
1360  _internal_set_scaling_method(value);
1361  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.scaling_method)
1362 }
1363 
1364 // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
1365 inline bool GlopParameters::_internal_has_feasibility_rule() const {
1366  bool value = (_has_bits_[0] & 0x00000020u) != 0;
1367  return value;
1368 }
1370  return _internal_has_feasibility_rule();
1371 }
1373  feasibility_rule_ = 1;
1374  _has_bits_[0] &= ~0x00000020u;
1375 }
1376 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_feasibility_rule() const {
1377  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(feasibility_rule_);
1378 }
1380  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.feasibility_rule)
1381  return _internal_feasibility_rule();
1382 }
1383 inline void GlopParameters::_internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1385  _has_bits_[0] |= 0x00000020u;
1386  feasibility_rule_ = value;
1387 }
1389  _internal_set_feasibility_rule(value);
1390  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.feasibility_rule)
1391 }
1392 
1393 // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
1394 inline bool GlopParameters::_internal_has_optimization_rule() const {
1395  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1396  return value;
1397 }
1399  return _internal_has_optimization_rule();
1400 }
1402  optimization_rule_ = 1;
1403  _has_bits_[0] &= ~0x00000040u;
1404 }
1405 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_optimization_rule() const {
1406  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(optimization_rule_);
1407 }
1409  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.optimization_rule)
1410  return _internal_optimization_rule();
1411 }
1412 inline void GlopParameters::_internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1414  _has_bits_[0] |= 0x00000040u;
1415  optimization_rule_ = value;
1416 }
1418  _internal_set_optimization_rule(value);
1419  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.optimization_rule)
1420 }
1421 
1422 // optional double refactorization_threshold = 6 [default = 1e-09];
1423 inline bool GlopParameters::_internal_has_refactorization_threshold() const {
1424  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1425  return value;
1426 }
1428  return _internal_has_refactorization_threshold();
1429 }
1431  refactorization_threshold_ = 1e-09;
1432  _has_bits_[0] &= ~0x00000080u;
1433 }
1434 inline double GlopParameters::_internal_refactorization_threshold() const {
1435  return refactorization_threshold_;
1436 }
1438  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.refactorization_threshold)
1439  return _internal_refactorization_threshold();
1440 }
1441 inline void GlopParameters::_internal_set_refactorization_threshold(double value) {
1442  _has_bits_[0] |= 0x00000080u;
1443  refactorization_threshold_ = value;
1444 }
1446  _internal_set_refactorization_threshold(value);
1447  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.refactorization_threshold)
1448 }
1449 
1450 // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
1451 inline bool GlopParameters::_internal_has_recompute_reduced_costs_threshold() const {
1452  bool value = (_has_bits_[0] & 0x00000100u) != 0;
1453  return value;
1454 }
1456  return _internal_has_recompute_reduced_costs_threshold();
1457 }
1459  recompute_reduced_costs_threshold_ = 1e-08;
1460  _has_bits_[0] &= ~0x00000100u;
1461 }
1462 inline double GlopParameters::_internal_recompute_reduced_costs_threshold() const {
1463  return recompute_reduced_costs_threshold_;
1464 }
1466  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1467  return _internal_recompute_reduced_costs_threshold();
1468 }
1469 inline void GlopParameters::_internal_set_recompute_reduced_costs_threshold(double value) {
1470  _has_bits_[0] |= 0x00000100u;
1471  recompute_reduced_costs_threshold_ = value;
1472 }
1474  _internal_set_recompute_reduced_costs_threshold(value);
1475  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1476 }
1477 
1478 // optional double recompute_edges_norm_threshold = 9 [default = 100];
1479 inline bool GlopParameters::_internal_has_recompute_edges_norm_threshold() const {
1480  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1481  return value;
1482 }
1484  return _internal_has_recompute_edges_norm_threshold();
1485 }
1487  recompute_edges_norm_threshold_ = 100;
1488  _has_bits_[0] &= ~0x00000200u;
1489 }
1490 inline double GlopParameters::_internal_recompute_edges_norm_threshold() const {
1491  return recompute_edges_norm_threshold_;
1492 }
1494  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1495  return _internal_recompute_edges_norm_threshold();
1496 }
1497 inline void GlopParameters::_internal_set_recompute_edges_norm_threshold(double value) {
1498  _has_bits_[0] |= 0x00000200u;
1499  recompute_edges_norm_threshold_ = value;
1500 }
1502  _internal_set_recompute_edges_norm_threshold(value);
1503  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1504 }
1505 
1506 // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
1507 inline bool GlopParameters::_internal_has_primal_feasibility_tolerance() const {
1508  bool value = (_has_bits_[0] & 0x00000400u) != 0;
1509  return value;
1510 }
1512  return _internal_has_primal_feasibility_tolerance();
1513 }
1515  primal_feasibility_tolerance_ = 1e-08;
1516  _has_bits_[0] &= ~0x00000400u;
1517 }
1518 inline double GlopParameters::_internal_primal_feasibility_tolerance() const {
1519  return primal_feasibility_tolerance_;
1520 }
1522  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1523  return _internal_primal_feasibility_tolerance();
1524 }
1525 inline void GlopParameters::_internal_set_primal_feasibility_tolerance(double value) {
1526  _has_bits_[0] |= 0x00000400u;
1527  primal_feasibility_tolerance_ = value;
1528 }
1530  _internal_set_primal_feasibility_tolerance(value);
1531  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1532 }
1533 
1534 // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
1535 inline bool GlopParameters::_internal_has_dual_feasibility_tolerance() const {
1536  bool value = (_has_bits_[0] & 0x00000800u) != 0;
1537  return value;
1538 }
1540  return _internal_has_dual_feasibility_tolerance();
1541 }
1543  dual_feasibility_tolerance_ = 1e-08;
1544  _has_bits_[0] &= ~0x00000800u;
1545 }
1546 inline double GlopParameters::_internal_dual_feasibility_tolerance() const {
1547  return dual_feasibility_tolerance_;
1548 }
1550  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1551  return _internal_dual_feasibility_tolerance();
1552 }
1553 inline void GlopParameters::_internal_set_dual_feasibility_tolerance(double value) {
1554  _has_bits_[0] |= 0x00000800u;
1555  dual_feasibility_tolerance_ = value;
1556 }
1558  _internal_set_dual_feasibility_tolerance(value);
1559  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1560 }
1561 
1562 // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
1563 inline bool GlopParameters::_internal_has_ratio_test_zero_threshold() const {
1564  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1565  return value;
1566 }
1568  return _internal_has_ratio_test_zero_threshold();
1569 }
1571  ratio_test_zero_threshold_ = 1e-09;
1572  _has_bits_[0] &= ~0x00001000u;
1573 }
1574 inline double GlopParameters::_internal_ratio_test_zero_threshold() const {
1575  return ratio_test_zero_threshold_;
1576 }
1578  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1579  return _internal_ratio_test_zero_threshold();
1580 }
1581 inline void GlopParameters::_internal_set_ratio_test_zero_threshold(double value) {
1582  _has_bits_[0] |= 0x00001000u;
1583  ratio_test_zero_threshold_ = value;
1584 }
1586  _internal_set_ratio_test_zero_threshold(value);
1587  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1588 }
1589 
1590 // optional double harris_tolerance_ratio = 13 [default = 0.5];
1591 inline bool GlopParameters::_internal_has_harris_tolerance_ratio() const {
1592  bool value = (_has_bits_[0] & 0x00002000u) != 0;
1593  return value;
1594 }
1596  return _internal_has_harris_tolerance_ratio();
1597 }
1599  harris_tolerance_ratio_ = 0.5;
1600  _has_bits_[0] &= ~0x00002000u;
1601 }
1602 inline double GlopParameters::_internal_harris_tolerance_ratio() const {
1603  return harris_tolerance_ratio_;
1604 }
1606  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1607  return _internal_harris_tolerance_ratio();
1608 }
1609 inline void GlopParameters::_internal_set_harris_tolerance_ratio(double value) {
1610  _has_bits_[0] |= 0x00002000u;
1611  harris_tolerance_ratio_ = value;
1612 }
1614  _internal_set_harris_tolerance_ratio(value);
1615  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1616 }
1617 
1618 // optional double small_pivot_threshold = 14 [default = 1e-06];
1619 inline bool GlopParameters::_internal_has_small_pivot_threshold() const {
1620  bool value = (_has_bits_[0] & 0x00004000u) != 0;
1621  return value;
1622 }
1624  return _internal_has_small_pivot_threshold();
1625 }
1627  small_pivot_threshold_ = 1e-06;
1628  _has_bits_[0] &= ~0x00004000u;
1629 }
1630 inline double GlopParameters::_internal_small_pivot_threshold() const {
1631  return small_pivot_threshold_;
1632 }
1634  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.small_pivot_threshold)
1635  return _internal_small_pivot_threshold();
1636 }
1637 inline void GlopParameters::_internal_set_small_pivot_threshold(double value) {
1638  _has_bits_[0] |= 0x00004000u;
1639  small_pivot_threshold_ = value;
1640 }
1642  _internal_set_small_pivot_threshold(value);
1643  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.small_pivot_threshold)
1644 }
1645 
1646 // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
1647 inline bool GlopParameters::_internal_has_minimum_acceptable_pivot() const {
1648  bool value = (_has_bits_[0] & 0x00008000u) != 0;
1649  return value;
1650 }
1652  return _internal_has_minimum_acceptable_pivot();
1653 }
1655  minimum_acceptable_pivot_ = 1e-06;
1656  _has_bits_[0] &= ~0x00008000u;
1657 }
1658 inline double GlopParameters::_internal_minimum_acceptable_pivot() const {
1659  return minimum_acceptable_pivot_;
1660 }
1662  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1663  return _internal_minimum_acceptable_pivot();
1664 }
1665 inline void GlopParameters::_internal_set_minimum_acceptable_pivot(double value) {
1666  _has_bits_[0] |= 0x00008000u;
1667  minimum_acceptable_pivot_ = value;
1668 }
1670  _internal_set_minimum_acceptable_pivot(value);
1671  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1672 }
1673 
1674 // optional double drop_tolerance = 52 [default = 1e-14];
1675 inline bool GlopParameters::_internal_has_drop_tolerance() const {
1676  bool value = (_has_bits_[1] & 0x00001000u) != 0;
1677  return value;
1678 }
1680  return _internal_has_drop_tolerance();
1681 }
1683  drop_tolerance_ = 1e-14;
1684  _has_bits_[1] &= ~0x00001000u;
1685 }
1686 inline double GlopParameters::_internal_drop_tolerance() const {
1687  return drop_tolerance_;
1688 }
1689 inline double GlopParameters::drop_tolerance() const {
1690  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.drop_tolerance)
1691  return _internal_drop_tolerance();
1692 }
1693 inline void GlopParameters::_internal_set_drop_tolerance(double value) {
1694  _has_bits_[1] |= 0x00001000u;
1695  drop_tolerance_ = value;
1696 }
1698  _internal_set_drop_tolerance(value);
1699  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.drop_tolerance)
1700 }
1701 
1702 // optional bool use_scaling = 16 [default = true];
1703 inline bool GlopParameters::_internal_has_use_scaling() const {
1704  bool value = (_has_bits_[0] & 0x04000000u) != 0;
1705  return value;
1706 }
1707 inline bool GlopParameters::has_use_scaling() const {
1708  return _internal_has_use_scaling();
1709 }
1711  use_scaling_ = true;
1712  _has_bits_[0] &= ~0x04000000u;
1713 }
1714 inline bool GlopParameters::_internal_use_scaling() const {
1715  return use_scaling_;
1716 }
1717 inline bool GlopParameters::use_scaling() const {
1718  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_scaling)
1719  return _internal_use_scaling();
1720 }
1721 inline void GlopParameters::_internal_set_use_scaling(bool value) {
1722  _has_bits_[0] |= 0x04000000u;
1723  use_scaling_ = value;
1724 }
1726  _internal_set_use_scaling(value);
1727  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_scaling)
1728 }
1729 
1730 // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1731 inline bool GlopParameters::_internal_has_cost_scaling() const {
1732  bool value = (_has_bits_[1] & 0x00100000u) != 0;
1733  return value;
1734 }
1736  return _internal_has_cost_scaling();
1737 }
1739  cost_scaling_ = 1;
1740  _has_bits_[1] &= ~0x00100000u;
1741 }
1742 inline ::operations_research::glop::GlopParameters_CostScalingAlgorithm GlopParameters::_internal_cost_scaling() const {
1743  return static_cast< ::operations_research::glop::GlopParameters_CostScalingAlgorithm >(cost_scaling_);
1744 }
1746  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.cost_scaling)
1747  return _internal_cost_scaling();
1748 }
1749 inline void GlopParameters::_internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value) {
1751  _has_bits_[1] |= 0x00100000u;
1752  cost_scaling_ = value;
1753 }
1755  _internal_set_cost_scaling(value);
1756  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.cost_scaling)
1757 }
1758 
1759 // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
1760 inline bool GlopParameters::_internal_has_initial_basis() const {
1761  bool value = (_has_bits_[0] & 0x00010000u) != 0;
1762  return value;
1763 }
1765  return _internal_has_initial_basis();
1766 }
1768  initial_basis_ = 2;
1769  _has_bits_[0] &= ~0x00010000u;
1770 }
1771 inline ::operations_research::glop::GlopParameters_InitialBasisHeuristic GlopParameters::_internal_initial_basis() const {
1772  return static_cast< ::operations_research::glop::GlopParameters_InitialBasisHeuristic >(initial_basis_);
1773 }
1775  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_basis)
1776  return _internal_initial_basis();
1777 }
1778 inline void GlopParameters::_internal_set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value) {
1780  _has_bits_[0] |= 0x00010000u;
1781  initial_basis_ = value;
1782 }
1784  _internal_set_initial_basis(value);
1785  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_basis)
1786 }
1787 
1788 // optional bool use_transposed_matrix = 18 [default = true];
1789 inline bool GlopParameters::_internal_has_use_transposed_matrix() const {
1790  bool value = (_has_bits_[0] & 0x08000000u) != 0;
1791  return value;
1792 }
1794  return _internal_has_use_transposed_matrix();
1795 }
1797  use_transposed_matrix_ = true;
1798  _has_bits_[0] &= ~0x08000000u;
1799 }
1800 inline bool GlopParameters::_internal_use_transposed_matrix() const {
1801  return use_transposed_matrix_;
1802 }
1804  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_transposed_matrix)
1805  return _internal_use_transposed_matrix();
1806 }
1807 inline void GlopParameters::_internal_set_use_transposed_matrix(bool value) {
1808  _has_bits_[0] |= 0x08000000u;
1809  use_transposed_matrix_ = value;
1810 }
1812  _internal_set_use_transposed_matrix(value);
1813  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_transposed_matrix)
1814 }
1815 
1816 // optional int32 basis_refactorization_period = 19 [default = 64];
1817 inline bool GlopParameters::_internal_has_basis_refactorization_period() const {
1818  bool value = (_has_bits_[0] & 0x00020000u) != 0;
1819  return value;
1820 }
1822  return _internal_has_basis_refactorization_period();
1823 }
1825  basis_refactorization_period_ = 64;
1826  _has_bits_[0] &= ~0x00020000u;
1827 }
1828 inline int32_t GlopParameters::_internal_basis_refactorization_period() const {
1829  return basis_refactorization_period_;
1830 }
1832  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.basis_refactorization_period)
1833  return _internal_basis_refactorization_period();
1834 }
1835 inline void GlopParameters::_internal_set_basis_refactorization_period(int32_t value) {
1836  _has_bits_[0] |= 0x00020000u;
1837  basis_refactorization_period_ = value;
1838 }
1840  _internal_set_basis_refactorization_period(value);
1841  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.basis_refactorization_period)
1842 }
1843 
1844 // optional bool dynamically_adjust_refactorization_period = 63 [default = true];
1845 inline bool GlopParameters::_internal_has_dynamically_adjust_refactorization_period() const {
1846  bool value = (_has_bits_[0] & 0x10000000u) != 0;
1847  return value;
1848 }
1850  return _internal_has_dynamically_adjust_refactorization_period();
1851 }
1853  dynamically_adjust_refactorization_period_ = true;
1854  _has_bits_[0] &= ~0x10000000u;
1855 }
1856 inline bool GlopParameters::_internal_dynamically_adjust_refactorization_period() const {
1857  return dynamically_adjust_refactorization_period_;
1858 }
1860  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dynamically_adjust_refactorization_period)
1861  return _internal_dynamically_adjust_refactorization_period();
1862 }
1863 inline void GlopParameters::_internal_set_dynamically_adjust_refactorization_period(bool value) {
1864  _has_bits_[0] |= 0x10000000u;
1865  dynamically_adjust_refactorization_period_ = value;
1866 }
1868  _internal_set_dynamically_adjust_refactorization_period(value);
1869  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dynamically_adjust_refactorization_period)
1870 }
1871 
1872 // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
1873 inline bool GlopParameters::_internal_has_solve_dual_problem() const {
1874  bool value = (_has_bits_[0] & 0x00100000u) != 0;
1875  return value;
1876 }
1878  return _internal_has_solve_dual_problem();
1879 }
1881  solve_dual_problem_ = 2;
1882  _has_bits_[0] &= ~0x00100000u;
1883 }
1884 inline ::operations_research::glop::GlopParameters_SolverBehavior GlopParameters::_internal_solve_dual_problem() const {
1885  return static_cast< ::operations_research::glop::GlopParameters_SolverBehavior >(solve_dual_problem_);
1886 }
1888  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solve_dual_problem)
1889  return _internal_solve_dual_problem();
1890 }
1891 inline void GlopParameters::_internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value) {
1893  _has_bits_[0] |= 0x00100000u;
1894  solve_dual_problem_ = value;
1895 }
1897  _internal_set_solve_dual_problem(value);
1898  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solve_dual_problem)
1899 }
1900 
1901 // optional double dualizer_threshold = 21 [default = 1.5];
1902 inline bool GlopParameters::_internal_has_dualizer_threshold() const {
1903  bool value = (_has_bits_[0] & 0x00040000u) != 0;
1904  return value;
1905 }
1907  return _internal_has_dualizer_threshold();
1908 }
1910  dualizer_threshold_ = 1.5;
1911  _has_bits_[0] &= ~0x00040000u;
1912 }
1913 inline double GlopParameters::_internal_dualizer_threshold() const {
1914  return dualizer_threshold_;
1915 }
1916 inline double GlopParameters::dualizer_threshold() const {
1917  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dualizer_threshold)
1918  return _internal_dualizer_threshold();
1919 }
1920 inline void GlopParameters::_internal_set_dualizer_threshold(double value) {
1921  _has_bits_[0] |= 0x00040000u;
1922  dualizer_threshold_ = value;
1923 }
1925  _internal_set_dualizer_threshold(value);
1926  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dualizer_threshold)
1927 }
1928 
1929 // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
1930 inline bool GlopParameters::_internal_has_solution_feasibility_tolerance() const {
1931  bool value = (_has_bits_[0] & 0x00080000u) != 0;
1932  return value;
1933 }
1935  return _internal_has_solution_feasibility_tolerance();
1936 }
1938  solution_feasibility_tolerance_ = 1e-06;
1939  _has_bits_[0] &= ~0x00080000u;
1940 }
1941 inline double GlopParameters::_internal_solution_feasibility_tolerance() const {
1942  return solution_feasibility_tolerance_;
1943 }
1945  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1946  return _internal_solution_feasibility_tolerance();
1947 }
1948 inline void GlopParameters::_internal_set_solution_feasibility_tolerance(double value) {
1949  _has_bits_[0] |= 0x00080000u;
1950  solution_feasibility_tolerance_ = value;
1951 }
1953  _internal_set_solution_feasibility_tolerance(value);
1954  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1955 }
1956 
1957 // optional bool provide_strong_optimal_guarantee = 24 [default = true];
1958 inline bool GlopParameters::_internal_has_provide_strong_optimal_guarantee() const {
1959  bool value = (_has_bits_[0] & 0x20000000u) != 0;
1960  return value;
1961 }
1963  return _internal_has_provide_strong_optimal_guarantee();
1964 }
1966  provide_strong_optimal_guarantee_ = true;
1967  _has_bits_[0] &= ~0x20000000u;
1968 }
1969 inline bool GlopParameters::_internal_provide_strong_optimal_guarantee() const {
1970  return provide_strong_optimal_guarantee_;
1971 }
1973  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1974  return _internal_provide_strong_optimal_guarantee();
1975 }
1976 inline void GlopParameters::_internal_set_provide_strong_optimal_guarantee(bool value) {
1977  _has_bits_[0] |= 0x20000000u;
1978  provide_strong_optimal_guarantee_ = value;
1979 }
1981  _internal_set_provide_strong_optimal_guarantee(value);
1982  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1983 }
1984 
1985 // optional bool change_status_to_imprecise = 58 [default = true];
1986 inline bool GlopParameters::_internal_has_change_status_to_imprecise() const {
1987  bool value = (_has_bits_[1] & 0x00000008u) != 0;
1988  return value;
1989 }
1991  return _internal_has_change_status_to_imprecise();
1992 }
1994  change_status_to_imprecise_ = true;
1995  _has_bits_[1] &= ~0x00000008u;
1996 }
1997 inline bool GlopParameters::_internal_change_status_to_imprecise() const {
1998  return change_status_to_imprecise_;
1999 }
2001  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.change_status_to_imprecise)
2002  return _internal_change_status_to_imprecise();
2003 }
2004 inline void GlopParameters::_internal_set_change_status_to_imprecise(bool value) {
2005  _has_bits_[1] |= 0x00000008u;
2006  change_status_to_imprecise_ = value;
2007 }
2009  _internal_set_change_status_to_imprecise(value);
2010  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.change_status_to_imprecise)
2011 }
2012 
2013 // optional double max_number_of_reoptimizations = 56 [default = 40];
2014 inline bool GlopParameters::_internal_has_max_number_of_reoptimizations() const {
2015  bool value = (_has_bits_[1] & 0x00008000u) != 0;
2016  return value;
2017 }
2019  return _internal_has_max_number_of_reoptimizations();
2020 }
2022  max_number_of_reoptimizations_ = 40;
2023  _has_bits_[1] &= ~0x00008000u;
2024 }
2025 inline double GlopParameters::_internal_max_number_of_reoptimizations() const {
2026  return max_number_of_reoptimizations_;
2027 }
2029  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
2030  return _internal_max_number_of_reoptimizations();
2031 }
2032 inline void GlopParameters::_internal_set_max_number_of_reoptimizations(double value) {
2033  _has_bits_[1] |= 0x00008000u;
2034  max_number_of_reoptimizations_ = value;
2035 }
2037  _internal_set_max_number_of_reoptimizations(value);
2038  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
2039 }
2040 
2041 // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
2042 inline bool GlopParameters::_internal_has_lu_factorization_pivot_threshold() const {
2043  bool value = (_has_bits_[0] & 0x00400000u) != 0;
2044  return value;
2045 }
2047  return _internal_has_lu_factorization_pivot_threshold();
2048 }
2050  lu_factorization_pivot_threshold_ = 0.01;
2051  _has_bits_[0] &= ~0x00400000u;
2052 }
2053 inline double GlopParameters::_internal_lu_factorization_pivot_threshold() const {
2054  return lu_factorization_pivot_threshold_;
2055 }
2057  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2058  return _internal_lu_factorization_pivot_threshold();
2059 }
2060 inline void GlopParameters::_internal_set_lu_factorization_pivot_threshold(double value) {
2061  _has_bits_[0] |= 0x00400000u;
2062  lu_factorization_pivot_threshold_ = value;
2063 }
2065  _internal_set_lu_factorization_pivot_threshold(value);
2066  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2067 }
2068 
2069 // optional double max_time_in_seconds = 26 [default = inf];
2070 inline bool GlopParameters::_internal_has_max_time_in_seconds() const {
2071  bool value = (_has_bits_[0] & 0x00800000u) != 0;
2072  return value;
2073 }
2075  return _internal_has_max_time_in_seconds();
2076 }
2078  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
2079  _has_bits_[0] &= ~0x00800000u;
2080 }
2081 inline double GlopParameters::_internal_max_time_in_seconds() const {
2082  return max_time_in_seconds_;
2083 }
2085  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_time_in_seconds)
2086  return _internal_max_time_in_seconds();
2087 }
2088 inline void GlopParameters::_internal_set_max_time_in_seconds(double value) {
2089  _has_bits_[0] |= 0x00800000u;
2090  max_time_in_seconds_ = value;
2091 }
2093  _internal_set_max_time_in_seconds(value);
2094  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_time_in_seconds)
2095 }
2096 
2097 // optional double max_deterministic_time = 45 [default = inf];
2098 inline bool GlopParameters::_internal_has_max_deterministic_time() const {
2099  bool value = (_has_bits_[1] & 0x00000200u) != 0;
2100  return value;
2101 }
2103  return _internal_has_max_deterministic_time();
2104 }
2106  max_deterministic_time_ = std::numeric_limits<double>::infinity();
2107  _has_bits_[1] &= ~0x00000200u;
2108 }
2109 inline double GlopParameters::_internal_max_deterministic_time() const {
2110  return max_deterministic_time_;
2111 }
2113  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_deterministic_time)
2114  return _internal_max_deterministic_time();
2115 }
2116 inline void GlopParameters::_internal_set_max_deterministic_time(double value) {
2117  _has_bits_[1] |= 0x00000200u;
2118  max_deterministic_time_ = value;
2119 }
2121  _internal_set_max_deterministic_time(value);
2122  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_deterministic_time)
2123 }
2124 
2125 // optional int64 max_number_of_iterations = 27 [default = -1];
2126 inline bool GlopParameters::_internal_has_max_number_of_iterations() const {
2127  bool value = (_has_bits_[0] & 0x01000000u) != 0;
2128  return value;
2129 }
2131  return _internal_has_max_number_of_iterations();
2132 }
2134  max_number_of_iterations_ = int64_t{-1};
2135  _has_bits_[0] &= ~0x01000000u;
2136 }
2137 inline int64_t GlopParameters::_internal_max_number_of_iterations() const {
2138  return max_number_of_iterations_;
2139 }
2141  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_iterations)
2142  return _internal_max_number_of_iterations();
2143 }
2144 inline void GlopParameters::_internal_set_max_number_of_iterations(int64_t value) {
2145  _has_bits_[0] |= 0x01000000u;
2146  max_number_of_iterations_ = value;
2147 }
2149  _internal_set_max_number_of_iterations(value);
2150  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_iterations)
2151 }
2152 
2153 // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
2154 inline bool GlopParameters::_internal_has_markowitz_zlatev_parameter() const {
2155  bool value = (_has_bits_[0] & 0x00200000u) != 0;
2156  return value;
2157 }
2159  return _internal_has_markowitz_zlatev_parameter();
2160 }
2162  markowitz_zlatev_parameter_ = 3;
2163  _has_bits_[0] &= ~0x00200000u;
2164 }
2165 inline int32_t GlopParameters::_internal_markowitz_zlatev_parameter() const {
2166  return markowitz_zlatev_parameter_;
2167 }
2169  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2170  return _internal_markowitz_zlatev_parameter();
2171 }
2172 inline void GlopParameters::_internal_set_markowitz_zlatev_parameter(int32_t value) {
2173  _has_bits_[0] |= 0x00200000u;
2174  markowitz_zlatev_parameter_ = value;
2175 }
2177  _internal_set_markowitz_zlatev_parameter(value);
2178  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2179 }
2180 
2181 // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
2182 inline bool GlopParameters::_internal_has_markowitz_singularity_threshold() const {
2183  bool value = (_has_bits_[0] & 0x02000000u) != 0;
2184  return value;
2185 }
2187  return _internal_has_markowitz_singularity_threshold();
2188 }
2190  markowitz_singularity_threshold_ = 1e-15;
2191  _has_bits_[0] &= ~0x02000000u;
2192 }
2193 inline double GlopParameters::_internal_markowitz_singularity_threshold() const {
2194  return markowitz_singularity_threshold_;
2195 }
2197  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2198  return _internal_markowitz_singularity_threshold();
2199 }
2200 inline void GlopParameters::_internal_set_markowitz_singularity_threshold(double value) {
2201  _has_bits_[0] |= 0x02000000u;
2202  markowitz_singularity_threshold_ = value;
2203 }
2205  _internal_set_markowitz_singularity_threshold(value);
2206  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2207 }
2208 
2209 // optional bool use_dual_simplex = 31 [default = false];
2210 inline bool GlopParameters::_internal_has_use_dual_simplex() const {
2211  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2212  return value;
2213 }
2215  return _internal_has_use_dual_simplex();
2216 }
2218  use_dual_simplex_ = false;
2219  _has_bits_[0] &= ~0x00000001u;
2220 }
2221 inline bool GlopParameters::_internal_use_dual_simplex() const {
2222  return use_dual_simplex_;
2223 }
2225  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_dual_simplex)
2226  return _internal_use_dual_simplex();
2227 }
2228 inline void GlopParameters::_internal_set_use_dual_simplex(bool value) {
2229  _has_bits_[0] |= 0x00000001u;
2230  use_dual_simplex_ = value;
2231 }
2233  _internal_set_use_dual_simplex(value);
2234  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_dual_simplex)
2235 }
2236 
2237 // optional bool allow_simplex_algorithm_change = 32 [default = false];
2238 inline bool GlopParameters::_internal_has_allow_simplex_algorithm_change() const {
2239  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2240  return value;
2241 }
2243  return _internal_has_allow_simplex_algorithm_change();
2244 }
2246  allow_simplex_algorithm_change_ = false;
2247  _has_bits_[0] &= ~0x00000002u;
2248 }
2249 inline bool GlopParameters::_internal_allow_simplex_algorithm_change() const {
2250  return allow_simplex_algorithm_change_;
2251 }
2253  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2254  return _internal_allow_simplex_algorithm_change();
2255 }
2256 inline void GlopParameters::_internal_set_allow_simplex_algorithm_change(bool value) {
2257  _has_bits_[0] |= 0x00000002u;
2258  allow_simplex_algorithm_change_ = value;
2259 }
2261  _internal_set_allow_simplex_algorithm_change(value);
2262  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2263 }
2264 
2265 // optional int32 devex_weights_reset_period = 33 [default = 150];
2266 inline bool GlopParameters::_internal_has_devex_weights_reset_period() const {
2267  bool value = (_has_bits_[0] & 0x40000000u) != 0;
2268  return value;
2269 }
2271  return _internal_has_devex_weights_reset_period();
2272 }
2274  devex_weights_reset_period_ = 150;
2275  _has_bits_[0] &= ~0x40000000u;
2276 }
2277 inline int32_t GlopParameters::_internal_devex_weights_reset_period() const {
2278  return devex_weights_reset_period_;
2279 }
2281  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.devex_weights_reset_period)
2282  return _internal_devex_weights_reset_period();
2283 }
2284 inline void GlopParameters::_internal_set_devex_weights_reset_period(int32_t value) {
2285  _has_bits_[0] |= 0x40000000u;
2286  devex_weights_reset_period_ = value;
2287 }
2289  _internal_set_devex_weights_reset_period(value);
2290  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.devex_weights_reset_period)
2291 }
2292 
2293 // optional bool use_preprocessing = 34 [default = true];
2294 inline bool GlopParameters::_internal_has_use_preprocessing() const {
2295  bool value = (_has_bits_[1] & 0x00000010u) != 0;
2296  return value;
2297 }
2299  return _internal_has_use_preprocessing();
2300 }
2302  use_preprocessing_ = true;
2303  _has_bits_[1] &= ~0x00000010u;
2304 }
2305 inline bool GlopParameters::_internal_use_preprocessing() const {
2306  return use_preprocessing_;
2307 }
2309  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_preprocessing)
2310  return _internal_use_preprocessing();
2311 }
2312 inline void GlopParameters::_internal_set_use_preprocessing(bool value) {
2313  _has_bits_[1] |= 0x00000010u;
2314  use_preprocessing_ = value;
2315 }
2317  _internal_set_use_preprocessing(value);
2318  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_preprocessing)
2319 }
2320 
2321 // optional bool use_middle_product_form_update = 35 [default = true];
2322 inline bool GlopParameters::_internal_has_use_middle_product_form_update() const {
2323  bool value = (_has_bits_[1] & 0x00000020u) != 0;
2324  return value;
2325 }
2327  return _internal_has_use_middle_product_form_update();
2328 }
2330  use_middle_product_form_update_ = true;
2331  _has_bits_[1] &= ~0x00000020u;
2332 }
2333 inline bool GlopParameters::_internal_use_middle_product_form_update() const {
2334  return use_middle_product_form_update_;
2335 }
2337  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_middle_product_form_update)
2338  return _internal_use_middle_product_form_update();
2339 }
2340 inline void GlopParameters::_internal_set_use_middle_product_form_update(bool value) {
2341  _has_bits_[1] |= 0x00000020u;
2342  use_middle_product_form_update_ = value;
2343 }
2345  _internal_set_use_middle_product_form_update(value);
2346  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_middle_product_form_update)
2347 }
2348 
2349 // optional bool initialize_devex_with_column_norms = 36 [default = true];
2350 inline bool GlopParameters::_internal_has_initialize_devex_with_column_norms() const {
2351  bool value = (_has_bits_[1] & 0x00000040u) != 0;
2352  return value;
2353 }
2355  return _internal_has_initialize_devex_with_column_norms();
2356 }
2358  initialize_devex_with_column_norms_ = true;
2359  _has_bits_[1] &= ~0x00000040u;
2360 }
2361 inline bool GlopParameters::_internal_initialize_devex_with_column_norms() const {
2362  return initialize_devex_with_column_norms_;
2363 }
2365  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2366  return _internal_initialize_devex_with_column_norms();
2367 }
2368 inline void GlopParameters::_internal_set_initialize_devex_with_column_norms(bool value) {
2369  _has_bits_[1] |= 0x00000040u;
2370  initialize_devex_with_column_norms_ = value;
2371 }
2373  _internal_set_initialize_devex_with_column_norms(value);
2374  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2375 }
2376 
2377 // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
2378 inline bool GlopParameters::_internal_has_exploit_singleton_column_in_initial_basis() const {
2379  bool value = (_has_bits_[1] & 0x00010000u) != 0;
2380  return value;
2381 }
2383  return _internal_has_exploit_singleton_column_in_initial_basis();
2384 }
2386  exploit_singleton_column_in_initial_basis_ = true;
2387  _has_bits_[1] &= ~0x00010000u;
2388 }
2389 inline bool GlopParameters::_internal_exploit_singleton_column_in_initial_basis() const {
2390  return exploit_singleton_column_in_initial_basis_;
2391 }
2393  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2394  return _internal_exploit_singleton_column_in_initial_basis();
2395 }
2396 inline void GlopParameters::_internal_set_exploit_singleton_column_in_initial_basis(bool value) {
2397  _has_bits_[1] |= 0x00010000u;
2398  exploit_singleton_column_in_initial_basis_ = value;
2399 }
2401  _internal_set_exploit_singleton_column_in_initial_basis(value);
2402  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2403 }
2404 
2405 // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
2406 inline bool GlopParameters::_internal_has_dual_small_pivot_threshold() const {
2407  bool value = (_has_bits_[0] & 0x80000000u) != 0;
2408  return value;
2409 }
2411  return _internal_has_dual_small_pivot_threshold();
2412 }
2414  dual_small_pivot_threshold_ = 0.0001;
2415  _has_bits_[0] &= ~0x80000000u;
2416 }
2417 inline double GlopParameters::_internal_dual_small_pivot_threshold() const {
2418  return dual_small_pivot_threshold_;
2419 }
2421  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2422  return _internal_dual_small_pivot_threshold();
2423 }
2424 inline void GlopParameters::_internal_set_dual_small_pivot_threshold(double value) {
2425  _has_bits_[0] |= 0x80000000u;
2426  dual_small_pivot_threshold_ = value;
2427 }
2429  _internal_set_dual_small_pivot_threshold(value);
2430  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2431 }
2432 
2433 // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
2434 inline bool GlopParameters::_internal_has_preprocessor_zero_tolerance() const {
2435  bool value = (_has_bits_[1] & 0x00000001u) != 0;
2436  return value;
2437 }
2439  return _internal_has_preprocessor_zero_tolerance();
2440 }
2442  preprocessor_zero_tolerance_ = 1e-09;
2443  _has_bits_[1] &= ~0x00000001u;
2444 }
2445 inline double GlopParameters::_internal_preprocessor_zero_tolerance() const {
2446  return preprocessor_zero_tolerance_;
2447 }
2449  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2450  return _internal_preprocessor_zero_tolerance();
2451 }
2452 inline void GlopParameters::_internal_set_preprocessor_zero_tolerance(double value) {
2453  _has_bits_[1] |= 0x00000001u;
2454  preprocessor_zero_tolerance_ = value;
2455 }
2457  _internal_set_preprocessor_zero_tolerance(value);
2458  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2459 }
2460 
2461 // optional double objective_lower_limit = 40 [default = -inf];
2462 inline bool GlopParameters::_internal_has_objective_lower_limit() const {
2463  bool value = (_has_bits_[1] & 0x00000002u) != 0;
2464  return value;
2465 }
2467  return _internal_has_objective_lower_limit();
2468 }
2470  objective_lower_limit_ = -std::numeric_limits<double>::infinity();
2471  _has_bits_[1] &= ~0x00000002u;
2472 }
2473 inline double GlopParameters::_internal_objective_lower_limit() const {
2474  return objective_lower_limit_;
2475 }
2477  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_lower_limit)
2478  return _internal_objective_lower_limit();
2479 }
2480 inline void GlopParameters::_internal_set_objective_lower_limit(double value) {
2481  _has_bits_[1] |= 0x00000002u;
2482  objective_lower_limit_ = value;
2483 }
2485  _internal_set_objective_lower_limit(value);
2486  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_lower_limit)
2487 }
2488 
2489 // optional double objective_upper_limit = 41 [default = inf];
2490 inline bool GlopParameters::_internal_has_objective_upper_limit() const {
2491  bool value = (_has_bits_[1] & 0x00000004u) != 0;
2492  return value;
2493 }
2495  return _internal_has_objective_upper_limit();
2496 }
2498  objective_upper_limit_ = std::numeric_limits<double>::infinity();
2499  _has_bits_[1] &= ~0x00000004u;
2500 }
2501 inline double GlopParameters::_internal_objective_upper_limit() const {
2502  return objective_upper_limit_;
2503 }
2505  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_upper_limit)
2506  return _internal_objective_upper_limit();
2507 }
2508 inline void GlopParameters::_internal_set_objective_upper_limit(double value) {
2509  _has_bits_[1] |= 0x00000004u;
2510  objective_upper_limit_ = value;
2511 }
2513  _internal_set_objective_upper_limit(value);
2514  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_upper_limit)
2515 }
2516 
2517 // optional double degenerate_ministep_factor = 42 [default = 0.01];
2518 inline bool GlopParameters::_internal_has_degenerate_ministep_factor() const {
2519  bool value = (_has_bits_[1] & 0x00000100u) != 0;
2520  return value;
2521 }
2523  return _internal_has_degenerate_ministep_factor();
2524 }
2526  degenerate_ministep_factor_ = 0.01;
2527  _has_bits_[1] &= ~0x00000100u;
2528 }
2529 inline double GlopParameters::_internal_degenerate_ministep_factor() const {
2530  return degenerate_ministep_factor_;
2531 }
2533  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2534  return _internal_degenerate_ministep_factor();
2535 }
2536 inline void GlopParameters::_internal_set_degenerate_ministep_factor(double value) {
2537  _has_bits_[1] |= 0x00000100u;
2538  degenerate_ministep_factor_ = value;
2539 }
2541  _internal_set_degenerate_ministep_factor(value);
2542  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2543 }
2544 
2545 // optional int32 random_seed = 43 [default = 1];
2546 inline bool GlopParameters::_internal_has_random_seed() const {
2547  bool value = (_has_bits_[1] & 0x00000080u) != 0;
2548  return value;
2549 }
2550 inline bool GlopParameters::has_random_seed() const {
2551  return _internal_has_random_seed();
2552 }
2554  random_seed_ = 1;
2555  _has_bits_[1] &= ~0x00000080u;
2556 }
2557 inline int32_t GlopParameters::_internal_random_seed() const {
2558  return random_seed_;
2559 }
2560 inline int32_t GlopParameters::random_seed() const {
2561  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.random_seed)
2562  return _internal_random_seed();
2563 }
2564 inline void GlopParameters::_internal_set_random_seed(int32_t value) {
2565  _has_bits_[1] |= 0x00000080u;
2566  random_seed_ = value;
2567 }
2569  _internal_set_random_seed(value);
2570  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.random_seed)
2571 }
2572 
2573 // optional int32 num_omp_threads = 44 [default = 1];
2574 inline bool GlopParameters::_internal_has_num_omp_threads() const {
2575  bool value = (_has_bits_[1] & 0x00000400u) != 0;
2576  return value;
2577 }
2579  return _internal_has_num_omp_threads();
2580 }
2582  num_omp_threads_ = 1;
2583  _has_bits_[1] &= ~0x00000400u;
2584 }
2585 inline int32_t GlopParameters::_internal_num_omp_threads() const {
2586  return num_omp_threads_;
2587 }
2588 inline int32_t GlopParameters::num_omp_threads() const {
2589  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.num_omp_threads)
2590  return _internal_num_omp_threads();
2591 }
2592 inline void GlopParameters::_internal_set_num_omp_threads(int32_t value) {
2593  _has_bits_[1] |= 0x00000400u;
2594  num_omp_threads_ = value;
2595 }
2597  _internal_set_num_omp_threads(value);
2598  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.num_omp_threads)
2599 }
2600 
2601 // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
2602 inline bool GlopParameters::_internal_has_perturb_costs_in_dual_simplex() const {
2603  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2604  return value;
2605 }
2607  return _internal_has_perturb_costs_in_dual_simplex();
2608 }
2610  perturb_costs_in_dual_simplex_ = false;
2611  _has_bits_[0] &= ~0x00000004u;
2612 }
2613 inline bool GlopParameters::_internal_perturb_costs_in_dual_simplex() const {
2614  return perturb_costs_in_dual_simplex_;
2615 }
2617  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2618  return _internal_perturb_costs_in_dual_simplex();
2619 }
2620 inline void GlopParameters::_internal_set_perturb_costs_in_dual_simplex(bool value) {
2621  _has_bits_[0] |= 0x00000004u;
2622  perturb_costs_in_dual_simplex_ = value;
2623 }
2625  _internal_set_perturb_costs_in_dual_simplex(value);
2626  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2627 }
2628 
2629 // optional bool use_dedicated_dual_feasibility_algorithm = 62 [default = true];
2630 inline bool GlopParameters::_internal_has_use_dedicated_dual_feasibility_algorithm() const {
2631  bool value = (_has_bits_[1] & 0x00020000u) != 0;
2632  return value;
2633 }
2635  return _internal_has_use_dedicated_dual_feasibility_algorithm();
2636 }
2638  use_dedicated_dual_feasibility_algorithm_ = true;
2639  _has_bits_[1] &= ~0x00020000u;
2640 }
2641 inline bool GlopParameters::_internal_use_dedicated_dual_feasibility_algorithm() const {
2642  return use_dedicated_dual_feasibility_algorithm_;
2643 }
2645  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_dedicated_dual_feasibility_algorithm)
2646  return _internal_use_dedicated_dual_feasibility_algorithm();
2647 }
2648 inline void GlopParameters::_internal_set_use_dedicated_dual_feasibility_algorithm(bool value) {
2649  _has_bits_[1] |= 0x00020000u;
2650  use_dedicated_dual_feasibility_algorithm_ = value;
2651 }
2653  _internal_set_use_dedicated_dual_feasibility_algorithm(value);
2654  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_dedicated_dual_feasibility_algorithm)
2655 }
2656 
2657 // optional double relative_cost_perturbation = 54 [default = 1e-05];
2658 inline bool GlopParameters::_internal_has_relative_cost_perturbation() const {
2659  bool value = (_has_bits_[1] & 0x00002000u) != 0;
2660  return value;
2661 }
2663  return _internal_has_relative_cost_perturbation();
2664 }
2666  relative_cost_perturbation_ = 1e-05;
2667  _has_bits_[1] &= ~0x00002000u;
2668 }
2669 inline double GlopParameters::_internal_relative_cost_perturbation() const {
2670  return relative_cost_perturbation_;
2671 }
2673  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_cost_perturbation)
2674  return _internal_relative_cost_perturbation();
2675 }
2676 inline void GlopParameters::_internal_set_relative_cost_perturbation(double value) {
2677  _has_bits_[1] |= 0x00002000u;
2678  relative_cost_perturbation_ = value;
2679 }
2681  _internal_set_relative_cost_perturbation(value);
2682  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_cost_perturbation)
2683 }
2684 
2685 // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
2686 inline bool GlopParameters::_internal_has_relative_max_cost_perturbation() const {
2687  bool value = (_has_bits_[1] & 0x00004000u) != 0;
2688  return value;
2689 }
2691  return _internal_has_relative_max_cost_perturbation();
2692 }
2694  relative_max_cost_perturbation_ = 1e-07;
2695  _has_bits_[1] &= ~0x00004000u;
2696 }
2697 inline double GlopParameters::_internal_relative_max_cost_perturbation() const {
2698  return relative_max_cost_perturbation_;
2699 }
2701  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2702  return _internal_relative_max_cost_perturbation();
2703 }
2704 inline void GlopParameters::_internal_set_relative_max_cost_perturbation(double value) {
2705  _has_bits_[1] |= 0x00004000u;
2706  relative_max_cost_perturbation_ = value;
2707 }
2709  _internal_set_relative_max_cost_perturbation(value);
2710  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2711 }
2712 
2713 // optional double initial_condition_number_threshold = 59 [default = 1e+50];
2714 inline bool GlopParameters::_internal_has_initial_condition_number_threshold() const {
2715  bool value = (_has_bits_[1] & 0x00200000u) != 0;
2716  return value;
2717 }
2719  return _internal_has_initial_condition_number_threshold();
2720 }
2722  initial_condition_number_threshold_ = 1e+50;
2723  _has_bits_[1] &= ~0x00200000u;
2724 }
2725 inline double GlopParameters::_internal_initial_condition_number_threshold() const {
2726  return initial_condition_number_threshold_;
2727 }
2729  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2730  return _internal_initial_condition_number_threshold();
2731 }
2732 inline void GlopParameters::_internal_set_initial_condition_number_threshold(double value) {
2733  _has_bits_[1] |= 0x00200000u;
2734  initial_condition_number_threshold_ = value;
2735 }
2737  _internal_set_initial_condition_number_threshold(value);
2738  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2739 }
2740 
2741 // optional bool log_search_progress = 61 [default = false];
2742 inline bool GlopParameters::_internal_has_log_search_progress() const {
2743  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2744  return value;
2745 }
2747  return _internal_has_log_search_progress();
2748 }
2750  log_search_progress_ = false;
2751  _has_bits_[0] &= ~0x00000008u;
2752 }
2753 inline bool GlopParameters::_internal_log_search_progress() const {
2754  return log_search_progress_;
2755 }
2757  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.log_search_progress)
2758  return _internal_log_search_progress();
2759 }
2760 inline void GlopParameters::_internal_set_log_search_progress(bool value) {
2761  _has_bits_[0] |= 0x00000008u;
2762  log_search_progress_ = value;
2763 }
2765  _internal_set_log_search_progress(value);
2766  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.log_search_progress)
2767 }
2768 
2769 // optional bool log_to_stdout = 66 [default = true];
2770 inline bool GlopParameters::_internal_has_log_to_stdout() const {
2771  bool value = (_has_bits_[1] & 0x00040000u) != 0;
2772  return value;
2773 }
2775  return _internal_has_log_to_stdout();
2776 }
2778  log_to_stdout_ = true;
2779  _has_bits_[1] &= ~0x00040000u;
2780 }
2781 inline bool GlopParameters::_internal_log_to_stdout() const {
2782  return log_to_stdout_;
2783 }
2784 inline bool GlopParameters::log_to_stdout() const {
2785  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.log_to_stdout)
2786  return _internal_log_to_stdout();
2787 }
2788 inline void GlopParameters::_internal_set_log_to_stdout(bool value) {
2789  _has_bits_[1] |= 0x00040000u;
2790  log_to_stdout_ = value;
2791 }
2793  _internal_set_log_to_stdout(value);
2794  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.log_to_stdout)
2795 }
2796 
2797 // optional double crossover_bound_snapping_distance = 64 [default = inf];
2798 inline bool GlopParameters::_internal_has_crossover_bound_snapping_distance() const {
2799  bool value = (_has_bits_[1] & 0x00400000u) != 0;
2800  return value;
2801 }
2803  return _internal_has_crossover_bound_snapping_distance();
2804 }
2806  crossover_bound_snapping_distance_ = std::numeric_limits<double>::infinity();
2807  _has_bits_[1] &= ~0x00400000u;
2808 }
2809 inline double GlopParameters::_internal_crossover_bound_snapping_distance() const {
2810  return crossover_bound_snapping_distance_;
2811 }
2813  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.crossover_bound_snapping_distance)
2814  return _internal_crossover_bound_snapping_distance();
2815 }
2816 inline void GlopParameters::_internal_set_crossover_bound_snapping_distance(double value) {
2817  _has_bits_[1] |= 0x00400000u;
2818  crossover_bound_snapping_distance_ = value;
2819 }
2821  _internal_set_crossover_bound_snapping_distance(value);
2822  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.crossover_bound_snapping_distance)
2823 }
2824 
2825 // optional bool push_to_vertex = 65 [default = true];
2826 inline bool GlopParameters::_internal_has_push_to_vertex() const {
2827  bool value = (_has_bits_[1] & 0x00080000u) != 0;
2828  return value;
2829 }
2831  return _internal_has_push_to_vertex();
2832 }
2834  push_to_vertex_ = true;
2835  _has_bits_[1] &= ~0x00080000u;
2836 }
2837 inline bool GlopParameters::_internal_push_to_vertex() const {
2838  return push_to_vertex_;
2839 }
2840 inline bool GlopParameters::push_to_vertex() const {
2841  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.push_to_vertex)
2842  return _internal_push_to_vertex();
2843 }
2844 inline void GlopParameters::_internal_set_push_to_vertex(bool value) {
2845  _has_bits_[1] |= 0x00080000u;
2846  push_to_vertex_ = value;
2847 }
2849  _internal_set_push_to_vertex(value);
2850  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.push_to_vertex)
2851 }
2852 
2853 // optional bool use_implied_free_preprocessor = 67 [default = true];
2854 inline bool GlopParameters::_internal_has_use_implied_free_preprocessor() const {
2855  bool value = (_has_bits_[0] & 0x00000010u) != 0;
2856  return value;
2857 }
2859  return _internal_has_use_implied_free_preprocessor();
2860 }
2862  use_implied_free_preprocessor_ = true;
2863  _has_bits_[0] &= ~0x00000010u;
2864 }
2865 inline bool GlopParameters::_internal_use_implied_free_preprocessor() const {
2866  return use_implied_free_preprocessor_;
2867 }
2869  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_implied_free_preprocessor)
2870  return _internal_use_implied_free_preprocessor();
2871 }
2872 inline void GlopParameters::_internal_set_use_implied_free_preprocessor(bool value) {
2873  _has_bits_[0] |= 0x00000010u;
2874  use_implied_free_preprocessor_ = value;
2875 }
2877  _internal_set_use_implied_free_preprocessor(value);
2878  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_implied_free_preprocessor)
2879 }
2880 
2881 #ifdef __GNUC__
2882  #pragma GCC diagnostic pop
2883 #endif // __GNUC__
2884 
2885 // @@protoc_insertion_point(namespace_scope)
2886 
2887 } // namespace glop
2888 } // namespace operations_research
2889 
2890 PROTOBUF_NAMESPACE_OPEN
2891 
2892 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_ScalingAlgorithm> : ::std::true_type {};
2893 template <>
2894 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_ScalingAlgorithm>() {
2896 }
2897 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_SolverBehavior> : ::std::true_type {};
2898 template <>
2899 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_SolverBehavior>() {
2901 }
2902 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_PricingRule> : ::std::true_type {};
2903 template <>
2904 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_PricingRule>() {
2906 }
2907 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_InitialBasisHeuristic> : ::std::true_type {};
2908 template <>
2909 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_InitialBasisHeuristic>() {
2911 }
2912 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_CostScalingAlgorithm> : ::std::true_type {};
2913 template <>
2914 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_CostScalingAlgorithm>() {
2916 }
2917 
2918 PROTOBUF_NAMESPACE_CLOSE
2919 
2920 // @@protoc_insertion_point(global_scope)
2921 
2922 #include <google/protobuf/port_undef.inc>
2923 #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
static const std::string & ScalingAlgorithm_Name(T enum_t_value)
void Swap(GlopParameters *other)
constexpr GlopParameters_SolverBehavior GlopParameters_SolverBehavior_SolverBehavior_MAX
static constexpr SolverBehavior NEVER_DO
void set_solution_feasibility_tolerance(double value)
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
GlopParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena=nullptr) const final
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
constexpr GlopParameters_PricingRule GlopParameters_PricingRule_PricingRule_MAX
friend void swap(GlopParameters &a, GlopParameters &b)
void set_devex_weights_reset_period(int32_t value)
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)
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)
::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_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_recompute_edges_norm_threshold(double value)
static constexpr PricingRule DEVEX
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr PricingRule PricingRule_MAX
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)
void set_basis_refactorization_period(int32_t 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
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)
void set_markowitz_zlatev_parameter(int32_t value)
::operations_research::glop::GlopParameters_PricingRule feasibility_rule() const
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
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
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
GlopParameters_PricingRule PricingRule
static constexpr CostScalingAlgorithm CostScalingAlgorithm_MIN
Collection of objects used to extend the Constraint Solver library.
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)
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_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()
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)