OR-Tools  8.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 < 3014000
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 3014000 < 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[];
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 class GlopParametersDefaultTypeInternal;
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 PROTOBUF_FINAL :
195  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:operations_research.glop.GlopParameters) */ {
196  public:
197  inline GlopParameters() : GlopParameters(nullptr) {}
198  virtual ~GlopParameters();
199 
200  GlopParameters(const GlopParameters& from);
201  GlopParameters(GlopParameters&& from) noexcept
202  : GlopParameters() {
203  *this = ::std::move(from);
204  }
205 
206  inline GlopParameters& operator=(const GlopParameters& from) {
207  CopyFrom(from);
208  return *this;
209  }
210  inline GlopParameters& operator=(GlopParameters&& from) noexcept {
211  if (GetArena() == from.GetArena()) {
212  if (this != &from) InternalSwap(&from);
213  } else {
214  CopyFrom(from);
215  }
216  return *this;
217  }
218 
219  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
220  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
221  }
222  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
223  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
224  }
225 
226  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
227  return GetDescriptor();
228  }
229  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
230  return GetMetadataStatic().descriptor;
231  }
232  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
233  return GetMetadataStatic().reflection;
234  }
235  static const GlopParameters& default_instance();
236 
237  static inline const GlopParameters* internal_default_instance() {
238  return reinterpret_cast<const GlopParameters*>(
240  }
241  static constexpr int kIndexInFileMessages =
242  0;
243 
244  friend void swap(GlopParameters& a, GlopParameters& b) {
245  a.Swap(&b);
246  }
247  inline void Swap(GlopParameters* other) {
248  if (other == this) return;
249  if (GetArena() == other->GetArena()) {
250  InternalSwap(other);
251  } else {
252  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
253  }
254  }
255  void UnsafeArenaSwap(GlopParameters* other) {
256  if (other == this) return;
257  GOOGLE_DCHECK(GetArena() == other->GetArena());
258  InternalSwap(other);
259  }
260 
261  // implements Message ----------------------------------------------
262 
263  inline GlopParameters* New() const final {
264  return CreateMaybeMessage<GlopParameters>(nullptr);
265  }
266 
267  GlopParameters* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
268  return CreateMaybeMessage<GlopParameters>(arena);
269  }
270  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
271  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
272  void CopyFrom(const GlopParameters& from);
273  void MergeFrom(const GlopParameters& from);
274  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
275  bool IsInitialized() const final;
276 
277  size_t ByteSizeLong() const final;
278  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
279  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
280  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
281  int GetCachedSize() const final { return _cached_size_.Get(); }
282 
283  private:
284  inline void SharedCtor();
285  inline void SharedDtor();
286  void SetCachedSize(int size) const final;
287  void InternalSwap(GlopParameters* other);
288  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
289  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
290  return "operations_research.glop.GlopParameters";
291  }
292  protected:
293  explicit GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena* arena);
294  private:
295  static void ArenaDtor(void* object);
296  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
297  public:
298 
299  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
300  private:
301  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
302  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ortools_2fglop_2fparameters_2eproto);
303  return ::descriptor_table_ortools_2fglop_2fparameters_2eproto.file_level_metadata[kIndexInFileMessages];
304  }
305 
306  public:
307 
308  // nested types ----------------------------------------------------
309 
311  static constexpr ScalingAlgorithm DEFAULT =
313  static constexpr ScalingAlgorithm EQUILIBRATION =
315  static constexpr ScalingAlgorithm LINEAR_PROGRAM =
317  static inline bool ScalingAlgorithm_IsValid(int value) {
319  }
320  static constexpr ScalingAlgorithm ScalingAlgorithm_MIN =
322  static constexpr ScalingAlgorithm ScalingAlgorithm_MAX =
324  static constexpr int ScalingAlgorithm_ARRAYSIZE =
326  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
329  }
330  template<typename T>
331  static inline const std::string& ScalingAlgorithm_Name(T enum_t_value) {
334  "Incorrect type passed to function ScalingAlgorithm_Name.");
335  return GlopParameters_ScalingAlgorithm_Name(enum_t_value);
336  }
337  static inline bool ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
340  }
341 
343  static constexpr SolverBehavior ALWAYS_DO =
345  static constexpr SolverBehavior NEVER_DO =
347  static constexpr SolverBehavior LET_SOLVER_DECIDE =
349  static inline bool SolverBehavior_IsValid(int value) {
351  }
352  static constexpr SolverBehavior SolverBehavior_MIN =
354  static constexpr SolverBehavior SolverBehavior_MAX =
356  static constexpr int SolverBehavior_ARRAYSIZE =
358  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
361  }
362  template<typename T>
363  static inline const std::string& SolverBehavior_Name(T enum_t_value) {
364  static_assert(::std::is_same<T, SolverBehavior>::value ||
366  "Incorrect type passed to function SolverBehavior_Name.");
367  return GlopParameters_SolverBehavior_Name(enum_t_value);
368  }
369  static inline bool SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
372  }
373 
375  static constexpr PricingRule DANTZIG =
377  static constexpr PricingRule STEEPEST_EDGE =
379  static constexpr PricingRule DEVEX =
381  static inline bool PricingRule_IsValid(int value) {
383  }
384  static constexpr PricingRule PricingRule_MIN =
386  static constexpr PricingRule PricingRule_MAX =
388  static constexpr int PricingRule_ARRAYSIZE =
390  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
393  }
394  template<typename T>
395  static inline const std::string& PricingRule_Name(T enum_t_value) {
396  static_assert(::std::is_same<T, PricingRule>::value ||
398  "Incorrect type passed to function PricingRule_Name.");
399  return GlopParameters_PricingRule_Name(enum_t_value);
400  }
401  static inline bool PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
402  PricingRule* value) {
404  }
405 
407  static constexpr InitialBasisHeuristic NONE =
409  static constexpr InitialBasisHeuristic BIXBY =
411  static constexpr InitialBasisHeuristic TRIANGULAR =
413  static constexpr InitialBasisHeuristic MAROS =
415  static inline bool InitialBasisHeuristic_IsValid(int value) {
417  }
418  static constexpr InitialBasisHeuristic InitialBasisHeuristic_MIN =
420  static constexpr InitialBasisHeuristic InitialBasisHeuristic_MAX =
422  static constexpr int InitialBasisHeuristic_ARRAYSIZE =
424  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
427  }
428  template<typename T>
429  static inline const std::string& InitialBasisHeuristic_Name(T enum_t_value) {
432  "Incorrect type passed to function InitialBasisHeuristic_Name.");
433  return GlopParameters_InitialBasisHeuristic_Name(enum_t_value);
434  }
435  static inline bool InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
438  }
439 
441  static constexpr CostScalingAlgorithm NO_COST_SCALING =
443  static constexpr CostScalingAlgorithm CONTAIN_ONE_COST_SCALING =
445  static constexpr CostScalingAlgorithm MEAN_COST_SCALING =
447  static constexpr CostScalingAlgorithm MEDIAN_COST_SCALING =
449  static inline bool CostScalingAlgorithm_IsValid(int value) {
451  }
452  static constexpr CostScalingAlgorithm CostScalingAlgorithm_MIN =
454  static constexpr CostScalingAlgorithm CostScalingAlgorithm_MAX =
456  static constexpr int CostScalingAlgorithm_ARRAYSIZE =
458  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
461  }
462  template<typename T>
463  static inline const std::string& CostScalingAlgorithm_Name(T enum_t_value) {
466  "Incorrect type passed to function CostScalingAlgorithm_Name.");
467  return GlopParameters_CostScalingAlgorithm_Name(enum_t_value);
468  }
469  static inline bool CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
472  }
473 
474  // accessors -------------------------------------------------------
475 
476  enum : int {
477  kUseDualSimplexFieldNumber = 31,
478  kAllowSimplexAlgorithmChangeFieldNumber = 32,
479  kPerturbCostsInDualSimplexFieldNumber = 53,
480  kLogSearchProgressFieldNumber = 61,
481  kFeasibilityRuleFieldNumber = 1,
482  kOptimizationRuleFieldNumber = 2,
483  kRefactorizationThresholdFieldNumber = 6,
484  kRecomputeReducedCostsThresholdFieldNumber = 8,
485  kRecomputeEdgesNormThresholdFieldNumber = 9,
486  kPrimalFeasibilityToleranceFieldNumber = 10,
487  kDualFeasibilityToleranceFieldNumber = 11,
488  kRatioTestZeroThresholdFieldNumber = 12,
489  kNormalizeUsingColumnNormFieldNumber = 4,
490  kUseNestedPricingFieldNumber = 5,
491  kUseScalingFieldNumber = 16,
492  kUseTransposedMatrixFieldNumber = 18,
493  kInitialBasisFieldNumber = 17,
494  kHarrisToleranceRatioFieldNumber = 13,
495  kSmallPivotThresholdFieldNumber = 14,
496  kMinimumAcceptablePivotFieldNumber = 15,
497  kBasisRefactorizationPeriodFieldNumber = 19,
498  kSolveDualProblemFieldNumber = 20,
499  kDualizerThresholdFieldNumber = 21,
500  kSolutionFeasibilityToleranceFieldNumber = 22,
501  kLuFactorizationPivotThresholdFieldNumber = 25,
502  kMaxTimeInSecondsFieldNumber = 26,
503  kMaxNumberOfIterationsFieldNumber = 27,
504  kMarkowitzSingularityThresholdFieldNumber = 30,
505  kMarkowitzZlatevParameterFieldNumber = 29,
506  kDevexWeightsResetPeriodFieldNumber = 33,
507  kInitializeDevexWithColumnNormsFieldNumber = 36,
508  kExploitSingletonColumnInInitialBasisFieldNumber = 37,
509  kProvideStrongOptimalGuaranteeFieldNumber = 24,
510  kChangeStatusToImpreciseFieldNumber = 58,
511  kUsePreprocessingFieldNumber = 34,
512  kUseMiddleProductFormUpdateFieldNumber = 35,
513  kDualSmallPivotThresholdFieldNumber = 38,
514  kPreprocessorZeroToleranceFieldNumber = 39,
515  kObjectiveLowerLimitFieldNumber = 40,
516  kObjectiveUpperLimitFieldNumber = 41,
517  kDegenerateMinistepFactorFieldNumber = 42,
518  kRandomSeedFieldNumber = 43,
519  kNumOmpThreadsFieldNumber = 44,
520  kMaxDeterministicTimeFieldNumber = 45,
521  kDropToleranceFieldNumber = 52,
522  kRelativeCostPerturbationFieldNumber = 54,
523  kRelativeMaxCostPerturbationFieldNumber = 55,
524  kMaxNumberOfReoptimizationsFieldNumber = 56,
525  kScalingMethodFieldNumber = 57,
526  kCostScalingFieldNumber = 60,
527  kInitialConditionNumberThresholdFieldNumber = 59,
528  };
529  // optional bool use_dual_simplex = 31 [default = false];
530  bool has_use_dual_simplex() const;
531  private:
532  bool _internal_has_use_dual_simplex() const;
533  public:
535  bool use_dual_simplex() const;
537  private:
538  bool _internal_use_dual_simplex() const;
539  void _internal_set_use_dual_simplex(bool value);
540  public:
541 
542  // optional bool allow_simplex_algorithm_change = 32 [default = false];
544  private:
545  bool _internal_has_allow_simplex_algorithm_change() const;
546  public:
550  private:
551  bool _internal_allow_simplex_algorithm_change() const;
552  void _internal_set_allow_simplex_algorithm_change(bool value);
553  public:
554 
555  // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
557  private:
558  bool _internal_has_perturb_costs_in_dual_simplex() const;
559  public:
563  private:
564  bool _internal_perturb_costs_in_dual_simplex() const;
565  void _internal_set_perturb_costs_in_dual_simplex(bool value);
566  public:
567 
568  // optional bool log_search_progress = 61 [default = false];
570  private:
571  bool _internal_has_log_search_progress() const;
572  public:
574  bool log_search_progress() const;
576  private:
577  bool _internal_log_search_progress() const;
578  void _internal_set_log_search_progress(bool value);
579  public:
580 
581  // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
582  bool has_feasibility_rule() const;
583  private:
584  bool _internal_has_feasibility_rule() const;
585  public:
589  private:
590  ::operations_research::glop::GlopParameters_PricingRule _internal_feasibility_rule() const;
591  void _internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value);
592  public:
593 
594  // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
595  bool has_optimization_rule() const;
596  private:
597  bool _internal_has_optimization_rule() const;
598  public:
602  private:
603  ::operations_research::glop::GlopParameters_PricingRule _internal_optimization_rule() const;
604  void _internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value);
605  public:
606 
607  // optional double refactorization_threshold = 6 [default = 1e-09];
609  private:
610  bool _internal_has_refactorization_threshold() const;
611  public:
615  private:
616  double _internal_refactorization_threshold() const;
617  void _internal_set_refactorization_threshold(double value);
618  public:
619 
620  // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
622  private:
623  bool _internal_has_recompute_reduced_costs_threshold() const;
624  public:
628  private:
629  double _internal_recompute_reduced_costs_threshold() const;
630  void _internal_set_recompute_reduced_costs_threshold(double value);
631  public:
632 
633  // optional double recompute_edges_norm_threshold = 9 [default = 100];
635  private:
636  bool _internal_has_recompute_edges_norm_threshold() const;
637  public:
641  private:
642  double _internal_recompute_edges_norm_threshold() const;
643  void _internal_set_recompute_edges_norm_threshold(double value);
644  public:
645 
646  // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
648  private:
649  bool _internal_has_primal_feasibility_tolerance() const;
650  public:
654  private:
655  double _internal_primal_feasibility_tolerance() const;
656  void _internal_set_primal_feasibility_tolerance(double value);
657  public:
658 
659  // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
661  private:
662  bool _internal_has_dual_feasibility_tolerance() const;
663  public:
667  private:
668  double _internal_dual_feasibility_tolerance() const;
669  void _internal_set_dual_feasibility_tolerance(double value);
670  public:
671 
672  // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
674  private:
675  bool _internal_has_ratio_test_zero_threshold() const;
676  public:
680  private:
681  double _internal_ratio_test_zero_threshold() const;
682  void _internal_set_ratio_test_zero_threshold(double value);
683  public:
684 
685  // optional bool normalize_using_column_norm = 4 [default = true];
687  private:
688  bool _internal_has_normalize_using_column_norm() const;
689  public:
693  private:
694  bool _internal_normalize_using_column_norm() const;
695  void _internal_set_normalize_using_column_norm(bool value);
696  public:
697 
698  // optional bool use_nested_pricing = 5 [default = true];
700  private:
701  bool _internal_has_use_nested_pricing() const;
702  public:
704  bool use_nested_pricing() const;
706  private:
707  bool _internal_use_nested_pricing() const;
708  void _internal_set_use_nested_pricing(bool value);
709  public:
710 
711  // optional bool use_scaling = 16 [default = true];
712  bool has_use_scaling() const;
713  private:
714  bool _internal_has_use_scaling() const;
715  public:
717  bool use_scaling() const;
718  void set_use_scaling(bool value);
719  private:
720  bool _internal_use_scaling() const;
721  void _internal_set_use_scaling(bool value);
722  public:
723 
724  // optional bool use_transposed_matrix = 18 [default = true];
726  private:
727  bool _internal_has_use_transposed_matrix() const;
728  public:
730  bool use_transposed_matrix() const;
732  private:
733  bool _internal_use_transposed_matrix() const;
734  void _internal_set_use_transposed_matrix(bool value);
735  public:
736 
737  // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
738  bool has_initial_basis() const;
739  private:
740  bool _internal_has_initial_basis() const;
741  public:
745  private:
748  public:
749 
750  // optional double harris_tolerance_ratio = 13 [default = 0.5];
752  private:
753  bool _internal_has_harris_tolerance_ratio() const;
754  public:
756  double harris_tolerance_ratio() const;
758  private:
759  double _internal_harris_tolerance_ratio() const;
760  void _internal_set_harris_tolerance_ratio(double value);
761  public:
762 
763  // optional double small_pivot_threshold = 14 [default = 1e-06];
765  private:
766  bool _internal_has_small_pivot_threshold() const;
767  public:
769  double small_pivot_threshold() const;
771  private:
772  double _internal_small_pivot_threshold() const;
773  void _internal_set_small_pivot_threshold(double value);
774  public:
775 
776  // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
778  private:
779  bool _internal_has_minimum_acceptable_pivot() const;
780  public:
782  double minimum_acceptable_pivot() const;
784  private:
785  double _internal_minimum_acceptable_pivot() const;
786  void _internal_set_minimum_acceptable_pivot(double value);
787  public:
788 
789  // optional int32 basis_refactorization_period = 19 [default = 64];
791  private:
792  bool _internal_has_basis_refactorization_period() const;
793  public:
797  private:
798  ::PROTOBUF_NAMESPACE_ID::int32 _internal_basis_refactorization_period() const;
799  void _internal_set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value);
800  public:
801 
802  // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
804  private:
805  bool _internal_has_solve_dual_problem() const;
806  public:
810  private:
811  ::operations_research::glop::GlopParameters_SolverBehavior _internal_solve_dual_problem() const;
812  void _internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value);
813  public:
814 
815  // optional double dualizer_threshold = 21 [default = 1.5];
817  private:
818  bool _internal_has_dualizer_threshold() const;
819  public:
821  double dualizer_threshold() const;
823  private:
824  double _internal_dualizer_threshold() const;
825  void _internal_set_dualizer_threshold(double value);
826  public:
827 
828  // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
830  private:
831  bool _internal_has_solution_feasibility_tolerance() const;
832  public:
836  private:
837  double _internal_solution_feasibility_tolerance() const;
838  void _internal_set_solution_feasibility_tolerance(double value);
839  public:
840 
841  // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
843  private:
844  bool _internal_has_lu_factorization_pivot_threshold() const;
845  public:
849  private:
850  double _internal_lu_factorization_pivot_threshold() const;
851  void _internal_set_lu_factorization_pivot_threshold(double value);
852  public:
853 
854  // optional double max_time_in_seconds = 26 [default = inf];
856  private:
857  bool _internal_has_max_time_in_seconds() const;
858  public:
860  double max_time_in_seconds() const;
862  private:
863  double _internal_max_time_in_seconds() const;
864  void _internal_set_max_time_in_seconds(double value);
865  public:
866 
867  // optional int64 max_number_of_iterations = 27 [default = -1];
869  private:
870  bool _internal_has_max_number_of_iterations() const;
871  public:
875  private:
876  ::PROTOBUF_NAMESPACE_ID::int64 _internal_max_number_of_iterations() const;
877  void _internal_set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value);
878  public:
879 
880  // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
882  private:
883  bool _internal_has_markowitz_singularity_threshold() const;
884  public:
888  private:
889  double _internal_markowitz_singularity_threshold() const;
890  void _internal_set_markowitz_singularity_threshold(double value);
891  public:
892 
893  // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
895  private:
896  bool _internal_has_markowitz_zlatev_parameter() const;
897  public:
901  private:
902  ::PROTOBUF_NAMESPACE_ID::int32 _internal_markowitz_zlatev_parameter() const;
903  void _internal_set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value);
904  public:
905 
906  // optional int32 devex_weights_reset_period = 33 [default = 150];
908  private:
909  bool _internal_has_devex_weights_reset_period() const;
910  public:
914  private:
915  ::PROTOBUF_NAMESPACE_ID::int32 _internal_devex_weights_reset_period() const;
916  void _internal_set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value);
917  public:
918 
919  // optional bool initialize_devex_with_column_norms = 36 [default = true];
921  private:
922  bool _internal_has_initialize_devex_with_column_norms() const;
923  public:
927  private:
928  bool _internal_initialize_devex_with_column_norms() const;
929  void _internal_set_initialize_devex_with_column_norms(bool value);
930  public:
931 
932  // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
934  private:
935  bool _internal_has_exploit_singleton_column_in_initial_basis() const;
936  public:
940  private:
941  bool _internal_exploit_singleton_column_in_initial_basis() const;
942  void _internal_set_exploit_singleton_column_in_initial_basis(bool value);
943  public:
944 
945  // optional bool provide_strong_optimal_guarantee = 24 [default = true];
947  private:
948  bool _internal_has_provide_strong_optimal_guarantee() const;
949  public:
953  private:
954  bool _internal_provide_strong_optimal_guarantee() const;
955  void _internal_set_provide_strong_optimal_guarantee(bool value);
956  public:
957 
958  // optional bool change_status_to_imprecise = 58 [default = true];
960  private:
961  bool _internal_has_change_status_to_imprecise() const;
962  public:
966  private:
967  bool _internal_change_status_to_imprecise() const;
968  void _internal_set_change_status_to_imprecise(bool value);
969  public:
970 
971  // optional bool use_preprocessing = 34 [default = true];
972  bool has_use_preprocessing() const;
973  private:
974  bool _internal_has_use_preprocessing() const;
975  public:
977  bool use_preprocessing() const;
979  private:
980  bool _internal_use_preprocessing() const;
981  void _internal_set_use_preprocessing(bool value);
982  public:
983 
984  // optional bool use_middle_product_form_update = 35 [default = true];
986  private:
987  bool _internal_has_use_middle_product_form_update() const;
988  public:
992  private:
993  bool _internal_use_middle_product_form_update() const;
994  void _internal_set_use_middle_product_form_update(bool value);
995  public:
996 
997  // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
999  private:
1000  bool _internal_has_dual_small_pivot_threshold() const;
1001  public:
1005  private:
1006  double _internal_dual_small_pivot_threshold() const;
1007  void _internal_set_dual_small_pivot_threshold(double value);
1008  public:
1009 
1010  // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
1012  private:
1013  bool _internal_has_preprocessor_zero_tolerance() const;
1014  public:
1018  private:
1019  double _internal_preprocessor_zero_tolerance() const;
1020  void _internal_set_preprocessor_zero_tolerance(double value);
1021  public:
1022 
1023  // optional double objective_lower_limit = 40 [default = -inf];
1025  private:
1026  bool _internal_has_objective_lower_limit() const;
1027  public:
1029  double objective_lower_limit() const;
1031  private:
1032  double _internal_objective_lower_limit() const;
1033  void _internal_set_objective_lower_limit(double value);
1034  public:
1035 
1036  // optional double objective_upper_limit = 41 [default = inf];
1038  private:
1039  bool _internal_has_objective_upper_limit() const;
1040  public:
1042  double objective_upper_limit() const;
1044  private:
1045  double _internal_objective_upper_limit() const;
1046  void _internal_set_objective_upper_limit(double value);
1047  public:
1048 
1049  // optional double degenerate_ministep_factor = 42 [default = 0.01];
1051  private:
1052  bool _internal_has_degenerate_ministep_factor() const;
1053  public:
1057  private:
1058  double _internal_degenerate_ministep_factor() const;
1059  void _internal_set_degenerate_ministep_factor(double value);
1060  public:
1061 
1062  // optional int32 random_seed = 43 [default = 1];
1063  bool has_random_seed() const;
1064  private:
1065  bool _internal_has_random_seed() const;
1066  public:
1070  private:
1071  ::PROTOBUF_NAMESPACE_ID::int32 _internal_random_seed() const;
1072  void _internal_set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value);
1073  public:
1074 
1075  // optional int32 num_omp_threads = 44 [default = 1];
1076  bool has_num_omp_threads() const;
1077  private:
1078  bool _internal_has_num_omp_threads() const;
1079  public:
1083  private:
1084  ::PROTOBUF_NAMESPACE_ID::int32 _internal_num_omp_threads() const;
1085  void _internal_set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value);
1086  public:
1087 
1088  // optional double max_deterministic_time = 45 [default = inf];
1090  private:
1091  bool _internal_has_max_deterministic_time() const;
1092  public:
1094  double max_deterministic_time() const;
1096  private:
1097  double _internal_max_deterministic_time() const;
1098  void _internal_set_max_deterministic_time(double value);
1099  public:
1100 
1101  // optional double drop_tolerance = 52 [default = 1e-14];
1102  bool has_drop_tolerance() const;
1103  private:
1104  bool _internal_has_drop_tolerance() const;
1105  public:
1107  double drop_tolerance() const;
1109  private:
1110  double _internal_drop_tolerance() const;
1111  void _internal_set_drop_tolerance(double value);
1112  public:
1113 
1114  // optional double relative_cost_perturbation = 54 [default = 1e-05];
1116  private:
1117  bool _internal_has_relative_cost_perturbation() const;
1118  public:
1122  private:
1123  double _internal_relative_cost_perturbation() const;
1124  void _internal_set_relative_cost_perturbation(double value);
1125  public:
1126 
1127  // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
1129  private:
1130  bool _internal_has_relative_max_cost_perturbation() const;
1131  public:
1135  private:
1136  double _internal_relative_max_cost_perturbation() const;
1137  void _internal_set_relative_max_cost_perturbation(double value);
1138  public:
1139 
1140  // optional double max_number_of_reoptimizations = 56 [default = 40];
1142  private:
1143  bool _internal_has_max_number_of_reoptimizations() const;
1144  public:
1148  private:
1149  double _internal_max_number_of_reoptimizations() const;
1150  void _internal_set_max_number_of_reoptimizations(double value);
1151  public:
1152 
1153  // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1154  bool has_scaling_method() const;
1155  private:
1156  bool _internal_has_scaling_method() const;
1157  public:
1161  private:
1162  ::operations_research::glop::GlopParameters_ScalingAlgorithm _internal_scaling_method() const;
1163  void _internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value);
1164  public:
1165 
1166  // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1167  bool has_cost_scaling() const;
1168  private:
1169  bool _internal_has_cost_scaling() const;
1170  public:
1174  private:
1176  void _internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value);
1177  public:
1178 
1179  // optional double initial_condition_number_threshold = 59 [default = 1e+50];
1181  private:
1182  bool _internal_has_initial_condition_number_threshold() const;
1183  public:
1187  private:
1188  double _internal_initial_condition_number_threshold() const;
1189  void _internal_set_initial_condition_number_threshold(double value);
1190  public:
1191 
1192  // @@protoc_insertion_point(class_scope:operations_research.glop.GlopParameters)
1193  private:
1194  class _Internal;
1195 
1196  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1197  typedef void InternalArenaConstructable_;
1198  typedef void DestructorSkippable_;
1199  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<2> _has_bits_;
1200  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1201  bool use_dual_simplex_;
1202  bool allow_simplex_algorithm_change_;
1203  bool perturb_costs_in_dual_simplex_;
1204  bool log_search_progress_;
1205  int feasibility_rule_;
1206  int optimization_rule_;
1207  double refactorization_threshold_;
1208  double recompute_reduced_costs_threshold_;
1209  double recompute_edges_norm_threshold_;
1210  double primal_feasibility_tolerance_;
1211  double dual_feasibility_tolerance_;
1212  double ratio_test_zero_threshold_;
1213  bool normalize_using_column_norm_;
1214  bool use_nested_pricing_;
1215  bool use_scaling_;
1216  bool use_transposed_matrix_;
1217  int initial_basis_;
1218  double harris_tolerance_ratio_;
1219  double small_pivot_threshold_;
1220  double minimum_acceptable_pivot_;
1221  ::PROTOBUF_NAMESPACE_ID::int32 basis_refactorization_period_;
1222  int solve_dual_problem_;
1223  double dualizer_threshold_;
1224  double solution_feasibility_tolerance_;
1225  double lu_factorization_pivot_threshold_;
1226  double max_time_in_seconds_;
1227  ::PROTOBUF_NAMESPACE_ID::int64 max_number_of_iterations_;
1228  double markowitz_singularity_threshold_;
1229  ::PROTOBUF_NAMESPACE_ID::int32 markowitz_zlatev_parameter_;
1230  ::PROTOBUF_NAMESPACE_ID::int32 devex_weights_reset_period_;
1231  bool initialize_devex_with_column_norms_;
1232  bool exploit_singleton_column_in_initial_basis_;
1233  bool provide_strong_optimal_guarantee_;
1234  bool change_status_to_imprecise_;
1235  bool use_preprocessing_;
1236  bool use_middle_product_form_update_;
1237  double dual_small_pivot_threshold_;
1238  double preprocessor_zero_tolerance_;
1239  double objective_lower_limit_;
1240  double objective_upper_limit_;
1241  double degenerate_ministep_factor_;
1242  ::PROTOBUF_NAMESPACE_ID::int32 random_seed_;
1243  ::PROTOBUF_NAMESPACE_ID::int32 num_omp_threads_;
1244  double max_deterministic_time_;
1245  double drop_tolerance_;
1246  double relative_cost_perturbation_;
1247  double relative_max_cost_perturbation_;
1248  double max_number_of_reoptimizations_;
1249  int scaling_method_;
1250  int cost_scaling_;
1251  double initial_condition_number_threshold_;
1252  friend struct ::TableStruct_ortools_2fglop_2fparameters_2eproto;
1253 };
1254 // ===================================================================
1255 
1256 
1257 // ===================================================================
1258 
1259 #ifdef __GNUC__
1260  #pragma GCC diagnostic push
1261  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1262 #endif // __GNUC__
1263 // GlopParameters
1264 
1265 // optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
1266 inline bool GlopParameters::_internal_has_scaling_method() const {
1267  bool value = (_has_bits_[1] & 0x00010000u) != 0;
1268  return value;
1269 }
1270 inline bool GlopParameters::has_scaling_method() const {
1271  return _internal_has_scaling_method();
1272 }
1273 inline void GlopParameters::clear_scaling_method() {
1274  scaling_method_ = 1;
1275  _has_bits_[1] &= ~0x00010000u;
1276 }
1277 inline ::operations_research::glop::GlopParameters_ScalingAlgorithm GlopParameters::_internal_scaling_method() const {
1278  return static_cast< ::operations_research::glop::GlopParameters_ScalingAlgorithm >(scaling_method_);
1279 }
1280 inline ::operations_research::glop::GlopParameters_ScalingAlgorithm GlopParameters::scaling_method() const {
1281  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.scaling_method)
1282  return _internal_scaling_method();
1283 }
1284 inline void GlopParameters::_internal_set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value) {
1286  _has_bits_[1] |= 0x00010000u;
1287  scaling_method_ = value;
1288 }
1289 inline void GlopParameters::set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value) {
1290  _internal_set_scaling_method(value);
1291  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.scaling_method)
1292 }
1293 
1294 // optional .operations_research.glop.GlopParameters.PricingRule feasibility_rule = 1 [default = STEEPEST_EDGE];
1295 inline bool GlopParameters::_internal_has_feasibility_rule() const {
1296  bool value = (_has_bits_[0] & 0x00000010u) != 0;
1297  return value;
1298 }
1299 inline bool GlopParameters::has_feasibility_rule() const {
1300  return _internal_has_feasibility_rule();
1301 }
1302 inline void GlopParameters::clear_feasibility_rule() {
1303  feasibility_rule_ = 1;
1304  _has_bits_[0] &= ~0x00000010u;
1305 }
1306 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_feasibility_rule() const {
1307  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(feasibility_rule_);
1308 }
1309 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::feasibility_rule() const {
1310  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.feasibility_rule)
1311  return _internal_feasibility_rule();
1312 }
1313 inline void GlopParameters::_internal_set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1315  _has_bits_[0] |= 0x00000010u;
1316  feasibility_rule_ = value;
1317 }
1318 inline void GlopParameters::set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1319  _internal_set_feasibility_rule(value);
1320  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.feasibility_rule)
1321 }
1322 
1323 // optional .operations_research.glop.GlopParameters.PricingRule optimization_rule = 2 [default = STEEPEST_EDGE];
1324 inline bool GlopParameters::_internal_has_optimization_rule() const {
1325  bool value = (_has_bits_[0] & 0x00000020u) != 0;
1326  return value;
1327 }
1328 inline bool GlopParameters::has_optimization_rule() const {
1329  return _internal_has_optimization_rule();
1330 }
1331 inline void GlopParameters::clear_optimization_rule() {
1332  optimization_rule_ = 1;
1333  _has_bits_[0] &= ~0x00000020u;
1334 }
1335 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::_internal_optimization_rule() const {
1336  return static_cast< ::operations_research::glop::GlopParameters_PricingRule >(optimization_rule_);
1337 }
1338 inline ::operations_research::glop::GlopParameters_PricingRule GlopParameters::optimization_rule() const {
1339  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.optimization_rule)
1340  return _internal_optimization_rule();
1341 }
1342 inline void GlopParameters::_internal_set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1344  _has_bits_[0] |= 0x00000020u;
1345  optimization_rule_ = value;
1346 }
1347 inline void GlopParameters::set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value) {
1348  _internal_set_optimization_rule(value);
1349  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.optimization_rule)
1350 }
1351 
1352 // optional bool normalize_using_column_norm = 4 [default = true];
1353 inline bool GlopParameters::_internal_has_normalize_using_column_norm() const {
1354  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1355  return value;
1356 }
1357 inline bool GlopParameters::has_normalize_using_column_norm() const {
1358  return _internal_has_normalize_using_column_norm();
1359 }
1360 inline void GlopParameters::clear_normalize_using_column_norm() {
1361  normalize_using_column_norm_ = true;
1362  _has_bits_[0] &= ~0x00001000u;
1363 }
1364 inline bool GlopParameters::_internal_normalize_using_column_norm() const {
1365  return normalize_using_column_norm_;
1366 }
1367 inline bool GlopParameters::normalize_using_column_norm() const {
1368  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.normalize_using_column_norm)
1369  return _internal_normalize_using_column_norm();
1370 }
1371 inline void GlopParameters::_internal_set_normalize_using_column_norm(bool value) {
1372  _has_bits_[0] |= 0x00001000u;
1373  normalize_using_column_norm_ = value;
1374 }
1375 inline void GlopParameters::set_normalize_using_column_norm(bool value) {
1376  _internal_set_normalize_using_column_norm(value);
1377  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.normalize_using_column_norm)
1378 }
1379 
1380 // optional bool use_nested_pricing = 5 [default = true];
1381 inline bool GlopParameters::_internal_has_use_nested_pricing() const {
1382  bool value = (_has_bits_[0] & 0x00002000u) != 0;
1383  return value;
1384 }
1385 inline bool GlopParameters::has_use_nested_pricing() const {
1386  return _internal_has_use_nested_pricing();
1387 }
1388 inline void GlopParameters::clear_use_nested_pricing() {
1389  use_nested_pricing_ = true;
1390  _has_bits_[0] &= ~0x00002000u;
1391 }
1392 inline bool GlopParameters::_internal_use_nested_pricing() const {
1393  return use_nested_pricing_;
1394 }
1395 inline bool GlopParameters::use_nested_pricing() const {
1396  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_nested_pricing)
1397  return _internal_use_nested_pricing();
1398 }
1399 inline void GlopParameters::_internal_set_use_nested_pricing(bool value) {
1400  _has_bits_[0] |= 0x00002000u;
1401  use_nested_pricing_ = value;
1402 }
1403 inline void GlopParameters::set_use_nested_pricing(bool value) {
1404  _internal_set_use_nested_pricing(value);
1405  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_nested_pricing)
1406 }
1407 
1408 // optional double refactorization_threshold = 6 [default = 1e-09];
1409 inline bool GlopParameters::_internal_has_refactorization_threshold() const {
1410  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1411  return value;
1412 }
1413 inline bool GlopParameters::has_refactorization_threshold() const {
1414  return _internal_has_refactorization_threshold();
1415 }
1416 inline void GlopParameters::clear_refactorization_threshold() {
1417  refactorization_threshold_ = 1e-09;
1418  _has_bits_[0] &= ~0x00000040u;
1419 }
1420 inline double GlopParameters::_internal_refactorization_threshold() const {
1421  return refactorization_threshold_;
1422 }
1423 inline double GlopParameters::refactorization_threshold() const {
1424  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.refactorization_threshold)
1425  return _internal_refactorization_threshold();
1426 }
1427 inline void GlopParameters::_internal_set_refactorization_threshold(double value) {
1428  _has_bits_[0] |= 0x00000040u;
1429  refactorization_threshold_ = value;
1430 }
1431 inline void GlopParameters::set_refactorization_threshold(double value) {
1432  _internal_set_refactorization_threshold(value);
1433  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.refactorization_threshold)
1434 }
1435 
1436 // optional double recompute_reduced_costs_threshold = 8 [default = 1e-08];
1437 inline bool GlopParameters::_internal_has_recompute_reduced_costs_threshold() const {
1438  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1439  return value;
1440 }
1441 inline bool GlopParameters::has_recompute_reduced_costs_threshold() const {
1442  return _internal_has_recompute_reduced_costs_threshold();
1443 }
1444 inline void GlopParameters::clear_recompute_reduced_costs_threshold() {
1445  recompute_reduced_costs_threshold_ = 1e-08;
1446  _has_bits_[0] &= ~0x00000080u;
1447 }
1448 inline double GlopParameters::_internal_recompute_reduced_costs_threshold() const {
1449  return recompute_reduced_costs_threshold_;
1450 }
1451 inline double GlopParameters::recompute_reduced_costs_threshold() const {
1452  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1453  return _internal_recompute_reduced_costs_threshold();
1454 }
1455 inline void GlopParameters::_internal_set_recompute_reduced_costs_threshold(double value) {
1456  _has_bits_[0] |= 0x00000080u;
1457  recompute_reduced_costs_threshold_ = value;
1458 }
1459 inline void GlopParameters::set_recompute_reduced_costs_threshold(double value) {
1460  _internal_set_recompute_reduced_costs_threshold(value);
1461  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_reduced_costs_threshold)
1462 }
1463 
1464 // optional double recompute_edges_norm_threshold = 9 [default = 100];
1465 inline bool GlopParameters::_internal_has_recompute_edges_norm_threshold() const {
1466  bool value = (_has_bits_[0] & 0x00000100u) != 0;
1467  return value;
1468 }
1469 inline bool GlopParameters::has_recompute_edges_norm_threshold() const {
1470  return _internal_has_recompute_edges_norm_threshold();
1471 }
1472 inline void GlopParameters::clear_recompute_edges_norm_threshold() {
1473  recompute_edges_norm_threshold_ = 100;
1474  _has_bits_[0] &= ~0x00000100u;
1475 }
1476 inline double GlopParameters::_internal_recompute_edges_norm_threshold() const {
1477  return recompute_edges_norm_threshold_;
1478 }
1479 inline double GlopParameters::recompute_edges_norm_threshold() const {
1480  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1481  return _internal_recompute_edges_norm_threshold();
1482 }
1483 inline void GlopParameters::_internal_set_recompute_edges_norm_threshold(double value) {
1484  _has_bits_[0] |= 0x00000100u;
1485  recompute_edges_norm_threshold_ = value;
1486 }
1487 inline void GlopParameters::set_recompute_edges_norm_threshold(double value) {
1488  _internal_set_recompute_edges_norm_threshold(value);
1489  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.recompute_edges_norm_threshold)
1490 }
1491 
1492 // optional double primal_feasibility_tolerance = 10 [default = 1e-08];
1493 inline bool GlopParameters::_internal_has_primal_feasibility_tolerance() const {
1494  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1495  return value;
1496 }
1497 inline bool GlopParameters::has_primal_feasibility_tolerance() const {
1498  return _internal_has_primal_feasibility_tolerance();
1499 }
1500 inline void GlopParameters::clear_primal_feasibility_tolerance() {
1501  primal_feasibility_tolerance_ = 1e-08;
1502  _has_bits_[0] &= ~0x00000200u;
1503 }
1504 inline double GlopParameters::_internal_primal_feasibility_tolerance() const {
1505  return primal_feasibility_tolerance_;
1506 }
1507 inline double GlopParameters::primal_feasibility_tolerance() const {
1508  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1509  return _internal_primal_feasibility_tolerance();
1510 }
1511 inline void GlopParameters::_internal_set_primal_feasibility_tolerance(double value) {
1512  _has_bits_[0] |= 0x00000200u;
1513  primal_feasibility_tolerance_ = value;
1514 }
1515 inline void GlopParameters::set_primal_feasibility_tolerance(double value) {
1516  _internal_set_primal_feasibility_tolerance(value);
1517  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.primal_feasibility_tolerance)
1518 }
1519 
1520 // optional double dual_feasibility_tolerance = 11 [default = 1e-08];
1521 inline bool GlopParameters::_internal_has_dual_feasibility_tolerance() const {
1522  bool value = (_has_bits_[0] & 0x00000400u) != 0;
1523  return value;
1524 }
1525 inline bool GlopParameters::has_dual_feasibility_tolerance() const {
1526  return _internal_has_dual_feasibility_tolerance();
1527 }
1528 inline void GlopParameters::clear_dual_feasibility_tolerance() {
1529  dual_feasibility_tolerance_ = 1e-08;
1530  _has_bits_[0] &= ~0x00000400u;
1531 }
1532 inline double GlopParameters::_internal_dual_feasibility_tolerance() const {
1533  return dual_feasibility_tolerance_;
1534 }
1535 inline double GlopParameters::dual_feasibility_tolerance() const {
1536  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1537  return _internal_dual_feasibility_tolerance();
1538 }
1539 inline void GlopParameters::_internal_set_dual_feasibility_tolerance(double value) {
1540  _has_bits_[0] |= 0x00000400u;
1541  dual_feasibility_tolerance_ = value;
1542 }
1543 inline void GlopParameters::set_dual_feasibility_tolerance(double value) {
1544  _internal_set_dual_feasibility_tolerance(value);
1545  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_feasibility_tolerance)
1546 }
1547 
1548 // optional double ratio_test_zero_threshold = 12 [default = 1e-09];
1549 inline bool GlopParameters::_internal_has_ratio_test_zero_threshold() const {
1550  bool value = (_has_bits_[0] & 0x00000800u) != 0;
1551  return value;
1552 }
1553 inline bool GlopParameters::has_ratio_test_zero_threshold() const {
1554  return _internal_has_ratio_test_zero_threshold();
1555 }
1556 inline void GlopParameters::clear_ratio_test_zero_threshold() {
1557  ratio_test_zero_threshold_ = 1e-09;
1558  _has_bits_[0] &= ~0x00000800u;
1559 }
1560 inline double GlopParameters::_internal_ratio_test_zero_threshold() const {
1561  return ratio_test_zero_threshold_;
1562 }
1563 inline double GlopParameters::ratio_test_zero_threshold() const {
1564  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1565  return _internal_ratio_test_zero_threshold();
1566 }
1567 inline void GlopParameters::_internal_set_ratio_test_zero_threshold(double value) {
1568  _has_bits_[0] |= 0x00000800u;
1569  ratio_test_zero_threshold_ = value;
1570 }
1571 inline void GlopParameters::set_ratio_test_zero_threshold(double value) {
1572  _internal_set_ratio_test_zero_threshold(value);
1573  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.ratio_test_zero_threshold)
1574 }
1575 
1576 // optional double harris_tolerance_ratio = 13 [default = 0.5];
1577 inline bool GlopParameters::_internal_has_harris_tolerance_ratio() const {
1578  bool value = (_has_bits_[0] & 0x00020000u) != 0;
1579  return value;
1580 }
1581 inline bool GlopParameters::has_harris_tolerance_ratio() const {
1582  return _internal_has_harris_tolerance_ratio();
1583 }
1584 inline void GlopParameters::clear_harris_tolerance_ratio() {
1585  harris_tolerance_ratio_ = 0.5;
1586  _has_bits_[0] &= ~0x00020000u;
1587 }
1588 inline double GlopParameters::_internal_harris_tolerance_ratio() const {
1589  return harris_tolerance_ratio_;
1590 }
1591 inline double GlopParameters::harris_tolerance_ratio() const {
1592  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1593  return _internal_harris_tolerance_ratio();
1594 }
1595 inline void GlopParameters::_internal_set_harris_tolerance_ratio(double value) {
1596  _has_bits_[0] |= 0x00020000u;
1597  harris_tolerance_ratio_ = value;
1598 }
1599 inline void GlopParameters::set_harris_tolerance_ratio(double value) {
1600  _internal_set_harris_tolerance_ratio(value);
1601  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.harris_tolerance_ratio)
1602 }
1603 
1604 // optional double small_pivot_threshold = 14 [default = 1e-06];
1605 inline bool GlopParameters::_internal_has_small_pivot_threshold() const {
1606  bool value = (_has_bits_[0] & 0x00040000u) != 0;
1607  return value;
1608 }
1609 inline bool GlopParameters::has_small_pivot_threshold() const {
1610  return _internal_has_small_pivot_threshold();
1611 }
1612 inline void GlopParameters::clear_small_pivot_threshold() {
1613  small_pivot_threshold_ = 1e-06;
1614  _has_bits_[0] &= ~0x00040000u;
1615 }
1616 inline double GlopParameters::_internal_small_pivot_threshold() const {
1617  return small_pivot_threshold_;
1618 }
1619 inline double GlopParameters::small_pivot_threshold() const {
1620  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.small_pivot_threshold)
1621  return _internal_small_pivot_threshold();
1622 }
1623 inline void GlopParameters::_internal_set_small_pivot_threshold(double value) {
1624  _has_bits_[0] |= 0x00040000u;
1625  small_pivot_threshold_ = value;
1626 }
1627 inline void GlopParameters::set_small_pivot_threshold(double value) {
1628  _internal_set_small_pivot_threshold(value);
1629  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.small_pivot_threshold)
1630 }
1631 
1632 // optional double minimum_acceptable_pivot = 15 [default = 1e-06];
1633 inline bool GlopParameters::_internal_has_minimum_acceptable_pivot() const {
1634  bool value = (_has_bits_[0] & 0x00080000u) != 0;
1635  return value;
1636 }
1637 inline bool GlopParameters::has_minimum_acceptable_pivot() const {
1638  return _internal_has_minimum_acceptable_pivot();
1639 }
1640 inline void GlopParameters::clear_minimum_acceptable_pivot() {
1641  minimum_acceptable_pivot_ = 1e-06;
1642  _has_bits_[0] &= ~0x00080000u;
1643 }
1644 inline double GlopParameters::_internal_minimum_acceptable_pivot() const {
1645  return minimum_acceptable_pivot_;
1646 }
1647 inline double GlopParameters::minimum_acceptable_pivot() const {
1648  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1649  return _internal_minimum_acceptable_pivot();
1650 }
1651 inline void GlopParameters::_internal_set_minimum_acceptable_pivot(double value) {
1652  _has_bits_[0] |= 0x00080000u;
1653  minimum_acceptable_pivot_ = value;
1654 }
1655 inline void GlopParameters::set_minimum_acceptable_pivot(double value) {
1656  _internal_set_minimum_acceptable_pivot(value);
1657  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.minimum_acceptable_pivot)
1658 }
1659 
1660 // optional double drop_tolerance = 52 [default = 1e-14];
1661 inline bool GlopParameters::_internal_has_drop_tolerance() const {
1662  bool value = (_has_bits_[1] & 0x00001000u) != 0;
1663  return value;
1664 }
1665 inline bool GlopParameters::has_drop_tolerance() const {
1666  return _internal_has_drop_tolerance();
1667 }
1668 inline void GlopParameters::clear_drop_tolerance() {
1669  drop_tolerance_ = 1e-14;
1670  _has_bits_[1] &= ~0x00001000u;
1671 }
1672 inline double GlopParameters::_internal_drop_tolerance() const {
1673  return drop_tolerance_;
1674 }
1675 inline double GlopParameters::drop_tolerance() const {
1676  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.drop_tolerance)
1677  return _internal_drop_tolerance();
1678 }
1679 inline void GlopParameters::_internal_set_drop_tolerance(double value) {
1680  _has_bits_[1] |= 0x00001000u;
1681  drop_tolerance_ = value;
1682 }
1683 inline void GlopParameters::set_drop_tolerance(double value) {
1684  _internal_set_drop_tolerance(value);
1685  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.drop_tolerance)
1686 }
1687 
1688 // optional bool use_scaling = 16 [default = true];
1689 inline bool GlopParameters::_internal_has_use_scaling() const {
1690  bool value = (_has_bits_[0] & 0x00004000u) != 0;
1691  return value;
1692 }
1693 inline bool GlopParameters::has_use_scaling() const {
1694  return _internal_has_use_scaling();
1695 }
1696 inline void GlopParameters::clear_use_scaling() {
1697  use_scaling_ = true;
1698  _has_bits_[0] &= ~0x00004000u;
1699 }
1700 inline bool GlopParameters::_internal_use_scaling() const {
1701  return use_scaling_;
1702 }
1703 inline bool GlopParameters::use_scaling() const {
1704  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_scaling)
1705  return _internal_use_scaling();
1706 }
1707 inline void GlopParameters::_internal_set_use_scaling(bool value) {
1708  _has_bits_[0] |= 0x00004000u;
1709  use_scaling_ = value;
1710 }
1711 inline void GlopParameters::set_use_scaling(bool value) {
1712  _internal_set_use_scaling(value);
1713  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_scaling)
1714 }
1715 
1716 // optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
1717 inline bool GlopParameters::_internal_has_cost_scaling() const {
1718  bool value = (_has_bits_[1] & 0x00020000u) != 0;
1719  return value;
1720 }
1721 inline bool GlopParameters::has_cost_scaling() const {
1722  return _internal_has_cost_scaling();
1723 }
1724 inline void GlopParameters::clear_cost_scaling() {
1725  cost_scaling_ = 1;
1726  _has_bits_[1] &= ~0x00020000u;
1727 }
1728 inline ::operations_research::glop::GlopParameters_CostScalingAlgorithm GlopParameters::_internal_cost_scaling() const {
1729  return static_cast< ::operations_research::glop::GlopParameters_CostScalingAlgorithm >(cost_scaling_);
1730 }
1732  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.cost_scaling)
1733  return _internal_cost_scaling();
1734 }
1735 inline void GlopParameters::_internal_set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value) {
1737  _has_bits_[1] |= 0x00020000u;
1738  cost_scaling_ = value;
1739 }
1740 inline void GlopParameters::set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value) {
1741  _internal_set_cost_scaling(value);
1742  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.cost_scaling)
1743 }
1744 
1745 // optional .operations_research.glop.GlopParameters.InitialBasisHeuristic initial_basis = 17 [default = TRIANGULAR];
1746 inline bool GlopParameters::_internal_has_initial_basis() const {
1747  bool value = (_has_bits_[0] & 0x00010000u) != 0;
1748  return value;
1749 }
1750 inline bool GlopParameters::has_initial_basis() const {
1751  return _internal_has_initial_basis();
1752 }
1753 inline void GlopParameters::clear_initial_basis() {
1754  initial_basis_ = 2;
1755  _has_bits_[0] &= ~0x00010000u;
1756 }
1757 inline ::operations_research::glop::GlopParameters_InitialBasisHeuristic GlopParameters::_internal_initial_basis() const {
1758  return static_cast< ::operations_research::glop::GlopParameters_InitialBasisHeuristic >(initial_basis_);
1759 }
1761  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_basis)
1762  return _internal_initial_basis();
1763 }
1764 inline void GlopParameters::_internal_set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value) {
1766  _has_bits_[0] |= 0x00010000u;
1767  initial_basis_ = value;
1768 }
1769 inline void GlopParameters::set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value) {
1770  _internal_set_initial_basis(value);
1771  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_basis)
1772 }
1773 
1774 // optional bool use_transposed_matrix = 18 [default = true];
1775 inline bool GlopParameters::_internal_has_use_transposed_matrix() const {
1776  bool value = (_has_bits_[0] & 0x00008000u) != 0;
1777  return value;
1778 }
1779 inline bool GlopParameters::has_use_transposed_matrix() const {
1780  return _internal_has_use_transposed_matrix();
1781 }
1782 inline void GlopParameters::clear_use_transposed_matrix() {
1783  use_transposed_matrix_ = true;
1784  _has_bits_[0] &= ~0x00008000u;
1785 }
1786 inline bool GlopParameters::_internal_use_transposed_matrix() const {
1787  return use_transposed_matrix_;
1788 }
1789 inline bool GlopParameters::use_transposed_matrix() const {
1790  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_transposed_matrix)
1791  return _internal_use_transposed_matrix();
1792 }
1793 inline void GlopParameters::_internal_set_use_transposed_matrix(bool value) {
1794  _has_bits_[0] |= 0x00008000u;
1795  use_transposed_matrix_ = value;
1796 }
1797 inline void GlopParameters::set_use_transposed_matrix(bool value) {
1798  _internal_set_use_transposed_matrix(value);
1799  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_transposed_matrix)
1800 }
1801 
1802 // optional int32 basis_refactorization_period = 19 [default = 64];
1803 inline bool GlopParameters::_internal_has_basis_refactorization_period() const {
1804  bool value = (_has_bits_[0] & 0x00100000u) != 0;
1805  return value;
1806 }
1807 inline bool GlopParameters::has_basis_refactorization_period() const {
1808  return _internal_has_basis_refactorization_period();
1809 }
1810 inline void GlopParameters::clear_basis_refactorization_period() {
1811  basis_refactorization_period_ = 64;
1812  _has_bits_[0] &= ~0x00100000u;
1813 }
1814 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_basis_refactorization_period() const {
1815  return basis_refactorization_period_;
1816 }
1817 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::basis_refactorization_period() const {
1818  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.basis_refactorization_period)
1819  return _internal_basis_refactorization_period();
1820 }
1821 inline void GlopParameters::_internal_set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
1822  _has_bits_[0] |= 0x00100000u;
1823  basis_refactorization_period_ = value;
1824 }
1825 inline void GlopParameters::set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
1826  _internal_set_basis_refactorization_period(value);
1827  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.basis_refactorization_period)
1828 }
1829 
1830 // optional .operations_research.glop.GlopParameters.SolverBehavior solve_dual_problem = 20 [default = LET_SOLVER_DECIDE];
1831 inline bool GlopParameters::_internal_has_solve_dual_problem() const {
1832  bool value = (_has_bits_[0] & 0x00200000u) != 0;
1833  return value;
1834 }
1835 inline bool GlopParameters::has_solve_dual_problem() const {
1836  return _internal_has_solve_dual_problem();
1837 }
1838 inline void GlopParameters::clear_solve_dual_problem() {
1839  solve_dual_problem_ = 2;
1840  _has_bits_[0] &= ~0x00200000u;
1841 }
1842 inline ::operations_research::glop::GlopParameters_SolverBehavior GlopParameters::_internal_solve_dual_problem() const {
1843  return static_cast< ::operations_research::glop::GlopParameters_SolverBehavior >(solve_dual_problem_);
1844 }
1845 inline ::operations_research::glop::GlopParameters_SolverBehavior GlopParameters::solve_dual_problem() const {
1846  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solve_dual_problem)
1847  return _internal_solve_dual_problem();
1848 }
1849 inline void GlopParameters::_internal_set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value) {
1851  _has_bits_[0] |= 0x00200000u;
1852  solve_dual_problem_ = value;
1853 }
1854 inline void GlopParameters::set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value) {
1855  _internal_set_solve_dual_problem(value);
1856  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solve_dual_problem)
1857 }
1858 
1859 // optional double dualizer_threshold = 21 [default = 1.5];
1860 inline bool GlopParameters::_internal_has_dualizer_threshold() const {
1861  bool value = (_has_bits_[0] & 0x00400000u) != 0;
1862  return value;
1863 }
1864 inline bool GlopParameters::has_dualizer_threshold() const {
1865  return _internal_has_dualizer_threshold();
1866 }
1867 inline void GlopParameters::clear_dualizer_threshold() {
1868  dualizer_threshold_ = 1.5;
1869  _has_bits_[0] &= ~0x00400000u;
1870 }
1871 inline double GlopParameters::_internal_dualizer_threshold() const {
1872  return dualizer_threshold_;
1873 }
1874 inline double GlopParameters::dualizer_threshold() const {
1875  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dualizer_threshold)
1876  return _internal_dualizer_threshold();
1877 }
1878 inline void GlopParameters::_internal_set_dualizer_threshold(double value) {
1879  _has_bits_[0] |= 0x00400000u;
1880  dualizer_threshold_ = value;
1881 }
1882 inline void GlopParameters::set_dualizer_threshold(double value) {
1883  _internal_set_dualizer_threshold(value);
1884  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dualizer_threshold)
1885 }
1886 
1887 // optional double solution_feasibility_tolerance = 22 [default = 1e-06];
1888 inline bool GlopParameters::_internal_has_solution_feasibility_tolerance() const {
1889  bool value = (_has_bits_[0] & 0x00800000u) != 0;
1890  return value;
1891 }
1892 inline bool GlopParameters::has_solution_feasibility_tolerance() const {
1893  return _internal_has_solution_feasibility_tolerance();
1894 }
1895 inline void GlopParameters::clear_solution_feasibility_tolerance() {
1896  solution_feasibility_tolerance_ = 1e-06;
1897  _has_bits_[0] &= ~0x00800000u;
1898 }
1899 inline double GlopParameters::_internal_solution_feasibility_tolerance() const {
1900  return solution_feasibility_tolerance_;
1901 }
1902 inline double GlopParameters::solution_feasibility_tolerance() const {
1903  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1904  return _internal_solution_feasibility_tolerance();
1905 }
1906 inline void GlopParameters::_internal_set_solution_feasibility_tolerance(double value) {
1907  _has_bits_[0] |= 0x00800000u;
1908  solution_feasibility_tolerance_ = value;
1909 }
1910 inline void GlopParameters::set_solution_feasibility_tolerance(double value) {
1911  _internal_set_solution_feasibility_tolerance(value);
1912  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.solution_feasibility_tolerance)
1913 }
1914 
1915 // optional bool provide_strong_optimal_guarantee = 24 [default = true];
1916 inline bool GlopParameters::_internal_has_provide_strong_optimal_guarantee() const {
1917  bool value = (_has_bits_[1] & 0x00000001u) != 0;
1918  return value;
1919 }
1920 inline bool GlopParameters::has_provide_strong_optimal_guarantee() const {
1921  return _internal_has_provide_strong_optimal_guarantee();
1922 }
1923 inline void GlopParameters::clear_provide_strong_optimal_guarantee() {
1924  provide_strong_optimal_guarantee_ = true;
1925  _has_bits_[1] &= ~0x00000001u;
1926 }
1927 inline bool GlopParameters::_internal_provide_strong_optimal_guarantee() const {
1928  return provide_strong_optimal_guarantee_;
1929 }
1930 inline bool GlopParameters::provide_strong_optimal_guarantee() const {
1931  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1932  return _internal_provide_strong_optimal_guarantee();
1933 }
1934 inline void GlopParameters::_internal_set_provide_strong_optimal_guarantee(bool value) {
1935  _has_bits_[1] |= 0x00000001u;
1936  provide_strong_optimal_guarantee_ = value;
1937 }
1938 inline void GlopParameters::set_provide_strong_optimal_guarantee(bool value) {
1939  _internal_set_provide_strong_optimal_guarantee(value);
1940  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.provide_strong_optimal_guarantee)
1941 }
1942 
1943 // optional bool change_status_to_imprecise = 58 [default = true];
1944 inline bool GlopParameters::_internal_has_change_status_to_imprecise() const {
1945  bool value = (_has_bits_[1] & 0x00000002u) != 0;
1946  return value;
1947 }
1948 inline bool GlopParameters::has_change_status_to_imprecise() const {
1949  return _internal_has_change_status_to_imprecise();
1950 }
1951 inline void GlopParameters::clear_change_status_to_imprecise() {
1952  change_status_to_imprecise_ = true;
1953  _has_bits_[1] &= ~0x00000002u;
1954 }
1955 inline bool GlopParameters::_internal_change_status_to_imprecise() const {
1956  return change_status_to_imprecise_;
1957 }
1958 inline bool GlopParameters::change_status_to_imprecise() const {
1959  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.change_status_to_imprecise)
1960  return _internal_change_status_to_imprecise();
1961 }
1962 inline void GlopParameters::_internal_set_change_status_to_imprecise(bool value) {
1963  _has_bits_[1] |= 0x00000002u;
1964  change_status_to_imprecise_ = value;
1965 }
1966 inline void GlopParameters::set_change_status_to_imprecise(bool value) {
1967  _internal_set_change_status_to_imprecise(value);
1968  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.change_status_to_imprecise)
1969 }
1970 
1971 // optional double max_number_of_reoptimizations = 56 [default = 40];
1972 inline bool GlopParameters::_internal_has_max_number_of_reoptimizations() const {
1973  bool value = (_has_bits_[1] & 0x00008000u) != 0;
1974  return value;
1975 }
1976 inline bool GlopParameters::has_max_number_of_reoptimizations() const {
1977  return _internal_has_max_number_of_reoptimizations();
1978 }
1979 inline void GlopParameters::clear_max_number_of_reoptimizations() {
1980  max_number_of_reoptimizations_ = 40;
1981  _has_bits_[1] &= ~0x00008000u;
1982 }
1983 inline double GlopParameters::_internal_max_number_of_reoptimizations() const {
1984  return max_number_of_reoptimizations_;
1985 }
1986 inline double GlopParameters::max_number_of_reoptimizations() const {
1987  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
1988  return _internal_max_number_of_reoptimizations();
1989 }
1990 inline void GlopParameters::_internal_set_max_number_of_reoptimizations(double value) {
1991  _has_bits_[1] |= 0x00008000u;
1992  max_number_of_reoptimizations_ = value;
1993 }
1994 inline void GlopParameters::set_max_number_of_reoptimizations(double value) {
1995  _internal_set_max_number_of_reoptimizations(value);
1996  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_reoptimizations)
1997 }
1998 
1999 // optional double lu_factorization_pivot_threshold = 25 [default = 0.01];
2000 inline bool GlopParameters::_internal_has_lu_factorization_pivot_threshold() const {
2001  bool value = (_has_bits_[0] & 0x01000000u) != 0;
2002  return value;
2003 }
2004 inline bool GlopParameters::has_lu_factorization_pivot_threshold() const {
2005  return _internal_has_lu_factorization_pivot_threshold();
2006 }
2007 inline void GlopParameters::clear_lu_factorization_pivot_threshold() {
2008  lu_factorization_pivot_threshold_ = 0.01;
2009  _has_bits_[0] &= ~0x01000000u;
2010 }
2011 inline double GlopParameters::_internal_lu_factorization_pivot_threshold() const {
2012  return lu_factorization_pivot_threshold_;
2013 }
2014 inline double GlopParameters::lu_factorization_pivot_threshold() const {
2015  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2016  return _internal_lu_factorization_pivot_threshold();
2017 }
2018 inline void GlopParameters::_internal_set_lu_factorization_pivot_threshold(double value) {
2019  _has_bits_[0] |= 0x01000000u;
2020  lu_factorization_pivot_threshold_ = value;
2021 }
2022 inline void GlopParameters::set_lu_factorization_pivot_threshold(double value) {
2023  _internal_set_lu_factorization_pivot_threshold(value);
2024  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.lu_factorization_pivot_threshold)
2025 }
2026 
2027 // optional double max_time_in_seconds = 26 [default = inf];
2028 inline bool GlopParameters::_internal_has_max_time_in_seconds() const {
2029  bool value = (_has_bits_[0] & 0x02000000u) != 0;
2030  return value;
2031 }
2032 inline bool GlopParameters::has_max_time_in_seconds() const {
2033  return _internal_has_max_time_in_seconds();
2034 }
2035 inline void GlopParameters::clear_max_time_in_seconds() {
2036  max_time_in_seconds_ = std::numeric_limits<double>::infinity();
2037  _has_bits_[0] &= ~0x02000000u;
2038 }
2039 inline double GlopParameters::_internal_max_time_in_seconds() const {
2040  return max_time_in_seconds_;
2041 }
2042 inline double GlopParameters::max_time_in_seconds() const {
2043  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_time_in_seconds)
2044  return _internal_max_time_in_seconds();
2045 }
2046 inline void GlopParameters::_internal_set_max_time_in_seconds(double value) {
2047  _has_bits_[0] |= 0x02000000u;
2048  max_time_in_seconds_ = value;
2049 }
2050 inline void GlopParameters::set_max_time_in_seconds(double value) {
2051  _internal_set_max_time_in_seconds(value);
2052  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_time_in_seconds)
2053 }
2054 
2055 // optional double max_deterministic_time = 45 [default = inf];
2056 inline bool GlopParameters::_internal_has_max_deterministic_time() const {
2057  bool value = (_has_bits_[1] & 0x00000800u) != 0;
2058  return value;
2059 }
2060 inline bool GlopParameters::has_max_deterministic_time() const {
2061  return _internal_has_max_deterministic_time();
2062 }
2063 inline void GlopParameters::clear_max_deterministic_time() {
2064  max_deterministic_time_ = std::numeric_limits<double>::infinity();
2065  _has_bits_[1] &= ~0x00000800u;
2066 }
2067 inline double GlopParameters::_internal_max_deterministic_time() const {
2068  return max_deterministic_time_;
2069 }
2070 inline double GlopParameters::max_deterministic_time() const {
2071  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_deterministic_time)
2072  return _internal_max_deterministic_time();
2073 }
2074 inline void GlopParameters::_internal_set_max_deterministic_time(double value) {
2075  _has_bits_[1] |= 0x00000800u;
2076  max_deterministic_time_ = value;
2077 }
2078 inline void GlopParameters::set_max_deterministic_time(double value) {
2079  _internal_set_max_deterministic_time(value);
2080  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_deterministic_time)
2081 }
2082 
2083 // optional int64 max_number_of_iterations = 27 [default = -1];
2084 inline bool GlopParameters::_internal_has_max_number_of_iterations() const {
2085  bool value = (_has_bits_[0] & 0x04000000u) != 0;
2086  return value;
2087 }
2088 inline bool GlopParameters::has_max_number_of_iterations() const {
2089  return _internal_has_max_number_of_iterations();
2090 }
2091 inline void GlopParameters::clear_max_number_of_iterations() {
2092  max_number_of_iterations_ = PROTOBUF_LONGLONG(-1);
2093  _has_bits_[0] &= ~0x04000000u;
2094 }
2095 inline ::PROTOBUF_NAMESPACE_ID::int64 GlopParameters::_internal_max_number_of_iterations() const {
2096  return max_number_of_iterations_;
2097 }
2098 inline ::PROTOBUF_NAMESPACE_ID::int64 GlopParameters::max_number_of_iterations() const {
2099  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.max_number_of_iterations)
2100  return _internal_max_number_of_iterations();
2101 }
2102 inline void GlopParameters::_internal_set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value) {
2103  _has_bits_[0] |= 0x04000000u;
2104  max_number_of_iterations_ = value;
2105 }
2106 inline void GlopParameters::set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value) {
2107  _internal_set_max_number_of_iterations(value);
2108  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.max_number_of_iterations)
2109 }
2110 
2111 // optional int32 markowitz_zlatev_parameter = 29 [default = 3];
2112 inline bool GlopParameters::_internal_has_markowitz_zlatev_parameter() const {
2113  bool value = (_has_bits_[0] & 0x10000000u) != 0;
2114  return value;
2115 }
2116 inline bool GlopParameters::has_markowitz_zlatev_parameter() const {
2117  return _internal_has_markowitz_zlatev_parameter();
2118 }
2119 inline void GlopParameters::clear_markowitz_zlatev_parameter() {
2120  markowitz_zlatev_parameter_ = 3;
2121  _has_bits_[0] &= ~0x10000000u;
2122 }
2123 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_markowitz_zlatev_parameter() const {
2124  return markowitz_zlatev_parameter_;
2125 }
2126 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::markowitz_zlatev_parameter() const {
2127  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2128  return _internal_markowitz_zlatev_parameter();
2129 }
2130 inline void GlopParameters::_internal_set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value) {
2131  _has_bits_[0] |= 0x10000000u;
2132  markowitz_zlatev_parameter_ = value;
2133 }
2134 inline void GlopParameters::set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value) {
2135  _internal_set_markowitz_zlatev_parameter(value);
2136  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_zlatev_parameter)
2137 }
2138 
2139 // optional double markowitz_singularity_threshold = 30 [default = 1e-15];
2140 inline bool GlopParameters::_internal_has_markowitz_singularity_threshold() const {
2141  bool value = (_has_bits_[0] & 0x08000000u) != 0;
2142  return value;
2143 }
2144 inline bool GlopParameters::has_markowitz_singularity_threshold() const {
2145  return _internal_has_markowitz_singularity_threshold();
2146 }
2147 inline void GlopParameters::clear_markowitz_singularity_threshold() {
2148  markowitz_singularity_threshold_ = 1e-15;
2149  _has_bits_[0] &= ~0x08000000u;
2150 }
2151 inline double GlopParameters::_internal_markowitz_singularity_threshold() const {
2152  return markowitz_singularity_threshold_;
2153 }
2154 inline double GlopParameters::markowitz_singularity_threshold() const {
2155  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2156  return _internal_markowitz_singularity_threshold();
2157 }
2158 inline void GlopParameters::_internal_set_markowitz_singularity_threshold(double value) {
2159  _has_bits_[0] |= 0x08000000u;
2160  markowitz_singularity_threshold_ = value;
2161 }
2162 inline void GlopParameters::set_markowitz_singularity_threshold(double value) {
2163  _internal_set_markowitz_singularity_threshold(value);
2164  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.markowitz_singularity_threshold)
2165 }
2166 
2167 // optional bool use_dual_simplex = 31 [default = false];
2168 inline bool GlopParameters::_internal_has_use_dual_simplex() const {
2169  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2170  return value;
2171 }
2172 inline bool GlopParameters::has_use_dual_simplex() const {
2173  return _internal_has_use_dual_simplex();
2174 }
2175 inline void GlopParameters::clear_use_dual_simplex() {
2176  use_dual_simplex_ = false;
2177  _has_bits_[0] &= ~0x00000001u;
2178 }
2179 inline bool GlopParameters::_internal_use_dual_simplex() const {
2180  return use_dual_simplex_;
2181 }
2182 inline bool GlopParameters::use_dual_simplex() const {
2183  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_dual_simplex)
2184  return _internal_use_dual_simplex();
2185 }
2186 inline void GlopParameters::_internal_set_use_dual_simplex(bool value) {
2187  _has_bits_[0] |= 0x00000001u;
2188  use_dual_simplex_ = value;
2189 }
2190 inline void GlopParameters::set_use_dual_simplex(bool value) {
2191  _internal_set_use_dual_simplex(value);
2192  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_dual_simplex)
2193 }
2194 
2195 // optional bool allow_simplex_algorithm_change = 32 [default = false];
2196 inline bool GlopParameters::_internal_has_allow_simplex_algorithm_change() const {
2197  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2198  return value;
2199 }
2200 inline bool GlopParameters::has_allow_simplex_algorithm_change() const {
2201  return _internal_has_allow_simplex_algorithm_change();
2202 }
2203 inline void GlopParameters::clear_allow_simplex_algorithm_change() {
2204  allow_simplex_algorithm_change_ = false;
2205  _has_bits_[0] &= ~0x00000002u;
2206 }
2207 inline bool GlopParameters::_internal_allow_simplex_algorithm_change() const {
2208  return allow_simplex_algorithm_change_;
2209 }
2210 inline bool GlopParameters::allow_simplex_algorithm_change() const {
2211  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2212  return _internal_allow_simplex_algorithm_change();
2213 }
2214 inline void GlopParameters::_internal_set_allow_simplex_algorithm_change(bool value) {
2215  _has_bits_[0] |= 0x00000002u;
2216  allow_simplex_algorithm_change_ = value;
2217 }
2218 inline void GlopParameters::set_allow_simplex_algorithm_change(bool value) {
2219  _internal_set_allow_simplex_algorithm_change(value);
2220  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.allow_simplex_algorithm_change)
2221 }
2222 
2223 // optional int32 devex_weights_reset_period = 33 [default = 150];
2224 inline bool GlopParameters::_internal_has_devex_weights_reset_period() const {
2225  bool value = (_has_bits_[0] & 0x20000000u) != 0;
2226  return value;
2227 }
2228 inline bool GlopParameters::has_devex_weights_reset_period() const {
2229  return _internal_has_devex_weights_reset_period();
2230 }
2231 inline void GlopParameters::clear_devex_weights_reset_period() {
2232  devex_weights_reset_period_ = 150;
2233  _has_bits_[0] &= ~0x20000000u;
2234 }
2235 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_devex_weights_reset_period() const {
2236  return devex_weights_reset_period_;
2237 }
2238 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::devex_weights_reset_period() const {
2239  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.devex_weights_reset_period)
2240  return _internal_devex_weights_reset_period();
2241 }
2242 inline void GlopParameters::_internal_set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
2243  _has_bits_[0] |= 0x20000000u;
2244  devex_weights_reset_period_ = value;
2245 }
2246 inline void GlopParameters::set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value) {
2247  _internal_set_devex_weights_reset_period(value);
2248  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.devex_weights_reset_period)
2249 }
2250 
2251 // optional bool use_preprocessing = 34 [default = true];
2252 inline bool GlopParameters::_internal_has_use_preprocessing() const {
2253  bool value = (_has_bits_[1] & 0x00000004u) != 0;
2254  return value;
2255 }
2256 inline bool GlopParameters::has_use_preprocessing() const {
2257  return _internal_has_use_preprocessing();
2258 }
2259 inline void GlopParameters::clear_use_preprocessing() {
2260  use_preprocessing_ = true;
2261  _has_bits_[1] &= ~0x00000004u;
2262 }
2263 inline bool GlopParameters::_internal_use_preprocessing() const {
2264  return use_preprocessing_;
2265 }
2266 inline bool GlopParameters::use_preprocessing() const {
2267  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_preprocessing)
2268  return _internal_use_preprocessing();
2269 }
2270 inline void GlopParameters::_internal_set_use_preprocessing(bool value) {
2271  _has_bits_[1] |= 0x00000004u;
2272  use_preprocessing_ = value;
2273 }
2274 inline void GlopParameters::set_use_preprocessing(bool value) {
2275  _internal_set_use_preprocessing(value);
2276  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_preprocessing)
2277 }
2278 
2279 // optional bool use_middle_product_form_update = 35 [default = true];
2280 inline bool GlopParameters::_internal_has_use_middle_product_form_update() const {
2281  bool value = (_has_bits_[1] & 0x00000008u) != 0;
2282  return value;
2283 }
2284 inline bool GlopParameters::has_use_middle_product_form_update() const {
2285  return _internal_has_use_middle_product_form_update();
2286 }
2287 inline void GlopParameters::clear_use_middle_product_form_update() {
2288  use_middle_product_form_update_ = true;
2289  _has_bits_[1] &= ~0x00000008u;
2290 }
2291 inline bool GlopParameters::_internal_use_middle_product_form_update() const {
2292  return use_middle_product_form_update_;
2293 }
2294 inline bool GlopParameters::use_middle_product_form_update() const {
2295  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.use_middle_product_form_update)
2296  return _internal_use_middle_product_form_update();
2297 }
2298 inline void GlopParameters::_internal_set_use_middle_product_form_update(bool value) {
2299  _has_bits_[1] |= 0x00000008u;
2300  use_middle_product_form_update_ = value;
2301 }
2302 inline void GlopParameters::set_use_middle_product_form_update(bool value) {
2303  _internal_set_use_middle_product_form_update(value);
2304  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.use_middle_product_form_update)
2305 }
2306 
2307 // optional bool initialize_devex_with_column_norms = 36 [default = true];
2308 inline bool GlopParameters::_internal_has_initialize_devex_with_column_norms() const {
2309  bool value = (_has_bits_[0] & 0x40000000u) != 0;
2310  return value;
2311 }
2312 inline bool GlopParameters::has_initialize_devex_with_column_norms() const {
2313  return _internal_has_initialize_devex_with_column_norms();
2314 }
2315 inline void GlopParameters::clear_initialize_devex_with_column_norms() {
2316  initialize_devex_with_column_norms_ = true;
2317  _has_bits_[0] &= ~0x40000000u;
2318 }
2319 inline bool GlopParameters::_internal_initialize_devex_with_column_norms() const {
2320  return initialize_devex_with_column_norms_;
2321 }
2322 inline bool GlopParameters::initialize_devex_with_column_norms() const {
2323  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2324  return _internal_initialize_devex_with_column_norms();
2325 }
2326 inline void GlopParameters::_internal_set_initialize_devex_with_column_norms(bool value) {
2327  _has_bits_[0] |= 0x40000000u;
2328  initialize_devex_with_column_norms_ = value;
2329 }
2330 inline void GlopParameters::set_initialize_devex_with_column_norms(bool value) {
2331  _internal_set_initialize_devex_with_column_norms(value);
2332  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initialize_devex_with_column_norms)
2333 }
2334 
2335 // optional bool exploit_singleton_column_in_initial_basis = 37 [default = true];
2336 inline bool GlopParameters::_internal_has_exploit_singleton_column_in_initial_basis() const {
2337  bool value = (_has_bits_[0] & 0x80000000u) != 0;
2338  return value;
2339 }
2340 inline bool GlopParameters::has_exploit_singleton_column_in_initial_basis() const {
2341  return _internal_has_exploit_singleton_column_in_initial_basis();
2342 }
2343 inline void GlopParameters::clear_exploit_singleton_column_in_initial_basis() {
2344  exploit_singleton_column_in_initial_basis_ = true;
2345  _has_bits_[0] &= ~0x80000000u;
2346 }
2347 inline bool GlopParameters::_internal_exploit_singleton_column_in_initial_basis() const {
2348  return exploit_singleton_column_in_initial_basis_;
2349 }
2350 inline bool GlopParameters::exploit_singleton_column_in_initial_basis() const {
2351  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2352  return _internal_exploit_singleton_column_in_initial_basis();
2353 }
2354 inline void GlopParameters::_internal_set_exploit_singleton_column_in_initial_basis(bool value) {
2355  _has_bits_[0] |= 0x80000000u;
2356  exploit_singleton_column_in_initial_basis_ = value;
2357 }
2358 inline void GlopParameters::set_exploit_singleton_column_in_initial_basis(bool value) {
2359  _internal_set_exploit_singleton_column_in_initial_basis(value);
2360  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.exploit_singleton_column_in_initial_basis)
2361 }
2362 
2363 // optional double dual_small_pivot_threshold = 38 [default = 0.0001];
2364 inline bool GlopParameters::_internal_has_dual_small_pivot_threshold() const {
2365  bool value = (_has_bits_[1] & 0x00000010u) != 0;
2366  return value;
2367 }
2368 inline bool GlopParameters::has_dual_small_pivot_threshold() const {
2369  return _internal_has_dual_small_pivot_threshold();
2370 }
2371 inline void GlopParameters::clear_dual_small_pivot_threshold() {
2372  dual_small_pivot_threshold_ = 0.0001;
2373  _has_bits_[1] &= ~0x00000010u;
2374 }
2375 inline double GlopParameters::_internal_dual_small_pivot_threshold() const {
2376  return dual_small_pivot_threshold_;
2377 }
2378 inline double GlopParameters::dual_small_pivot_threshold() const {
2379  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2380  return _internal_dual_small_pivot_threshold();
2381 }
2382 inline void GlopParameters::_internal_set_dual_small_pivot_threshold(double value) {
2383  _has_bits_[1] |= 0x00000010u;
2384  dual_small_pivot_threshold_ = value;
2385 }
2386 inline void GlopParameters::set_dual_small_pivot_threshold(double value) {
2387  _internal_set_dual_small_pivot_threshold(value);
2388  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.dual_small_pivot_threshold)
2389 }
2390 
2391 // optional double preprocessor_zero_tolerance = 39 [default = 1e-09];
2392 inline bool GlopParameters::_internal_has_preprocessor_zero_tolerance() const {
2393  bool value = (_has_bits_[1] & 0x00000020u) != 0;
2394  return value;
2395 }
2396 inline bool GlopParameters::has_preprocessor_zero_tolerance() const {
2397  return _internal_has_preprocessor_zero_tolerance();
2398 }
2399 inline void GlopParameters::clear_preprocessor_zero_tolerance() {
2400  preprocessor_zero_tolerance_ = 1e-09;
2401  _has_bits_[1] &= ~0x00000020u;
2402 }
2403 inline double GlopParameters::_internal_preprocessor_zero_tolerance() const {
2404  return preprocessor_zero_tolerance_;
2405 }
2406 inline double GlopParameters::preprocessor_zero_tolerance() const {
2407  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2408  return _internal_preprocessor_zero_tolerance();
2409 }
2410 inline void GlopParameters::_internal_set_preprocessor_zero_tolerance(double value) {
2411  _has_bits_[1] |= 0x00000020u;
2412  preprocessor_zero_tolerance_ = value;
2413 }
2414 inline void GlopParameters::set_preprocessor_zero_tolerance(double value) {
2415  _internal_set_preprocessor_zero_tolerance(value);
2416  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.preprocessor_zero_tolerance)
2417 }
2418 
2419 // optional double objective_lower_limit = 40 [default = -inf];
2420 inline bool GlopParameters::_internal_has_objective_lower_limit() const {
2421  bool value = (_has_bits_[1] & 0x00000040u) != 0;
2422  return value;
2423 }
2424 inline bool GlopParameters::has_objective_lower_limit() const {
2425  return _internal_has_objective_lower_limit();
2426 }
2427 inline void GlopParameters::clear_objective_lower_limit() {
2428  objective_lower_limit_ = -std::numeric_limits<double>::infinity();
2429  _has_bits_[1] &= ~0x00000040u;
2430 }
2431 inline double GlopParameters::_internal_objective_lower_limit() const {
2432  return objective_lower_limit_;
2433 }
2434 inline double GlopParameters::objective_lower_limit() const {
2435  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_lower_limit)
2436  return _internal_objective_lower_limit();
2437 }
2438 inline void GlopParameters::_internal_set_objective_lower_limit(double value) {
2439  _has_bits_[1] |= 0x00000040u;
2440  objective_lower_limit_ = value;
2441 }
2442 inline void GlopParameters::set_objective_lower_limit(double value) {
2443  _internal_set_objective_lower_limit(value);
2444  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_lower_limit)
2445 }
2446 
2447 // optional double objective_upper_limit = 41 [default = inf];
2448 inline bool GlopParameters::_internal_has_objective_upper_limit() const {
2449  bool value = (_has_bits_[1] & 0x00000080u) != 0;
2450  return value;
2451 }
2452 inline bool GlopParameters::has_objective_upper_limit() const {
2453  return _internal_has_objective_upper_limit();
2454 }
2455 inline void GlopParameters::clear_objective_upper_limit() {
2456  objective_upper_limit_ = std::numeric_limits<double>::infinity();
2457  _has_bits_[1] &= ~0x00000080u;
2458 }
2459 inline double GlopParameters::_internal_objective_upper_limit() const {
2460  return objective_upper_limit_;
2461 }
2462 inline double GlopParameters::objective_upper_limit() const {
2463  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.objective_upper_limit)
2464  return _internal_objective_upper_limit();
2465 }
2466 inline void GlopParameters::_internal_set_objective_upper_limit(double value) {
2467  _has_bits_[1] |= 0x00000080u;
2468  objective_upper_limit_ = value;
2469 }
2470 inline void GlopParameters::set_objective_upper_limit(double value) {
2471  _internal_set_objective_upper_limit(value);
2472  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.objective_upper_limit)
2473 }
2474 
2475 // optional double degenerate_ministep_factor = 42 [default = 0.01];
2476 inline bool GlopParameters::_internal_has_degenerate_ministep_factor() const {
2477  bool value = (_has_bits_[1] & 0x00000100u) != 0;
2478  return value;
2479 }
2480 inline bool GlopParameters::has_degenerate_ministep_factor() const {
2481  return _internal_has_degenerate_ministep_factor();
2482 }
2483 inline void GlopParameters::clear_degenerate_ministep_factor() {
2484  degenerate_ministep_factor_ = 0.01;
2485  _has_bits_[1] &= ~0x00000100u;
2486 }
2487 inline double GlopParameters::_internal_degenerate_ministep_factor() const {
2488  return degenerate_ministep_factor_;
2489 }
2490 inline double GlopParameters::degenerate_ministep_factor() const {
2491  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2492  return _internal_degenerate_ministep_factor();
2493 }
2494 inline void GlopParameters::_internal_set_degenerate_ministep_factor(double value) {
2495  _has_bits_[1] |= 0x00000100u;
2496  degenerate_ministep_factor_ = value;
2497 }
2498 inline void GlopParameters::set_degenerate_ministep_factor(double value) {
2499  _internal_set_degenerate_ministep_factor(value);
2500  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.degenerate_ministep_factor)
2501 }
2502 
2503 // optional int32 random_seed = 43 [default = 1];
2504 inline bool GlopParameters::_internal_has_random_seed() const {
2505  bool value = (_has_bits_[1] & 0x00000200u) != 0;
2506  return value;
2507 }
2508 inline bool GlopParameters::has_random_seed() const {
2509  return _internal_has_random_seed();
2510 }
2511 inline void GlopParameters::clear_random_seed() {
2512  random_seed_ = 1;
2513  _has_bits_[1] &= ~0x00000200u;
2514 }
2515 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_random_seed() const {
2516  return random_seed_;
2517 }
2518 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::random_seed() const {
2519  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.random_seed)
2520  return _internal_random_seed();
2521 }
2522 inline void GlopParameters::_internal_set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value) {
2523  _has_bits_[1] |= 0x00000200u;
2524  random_seed_ = value;
2525 }
2526 inline void GlopParameters::set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value) {
2527  _internal_set_random_seed(value);
2528  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.random_seed)
2529 }
2530 
2531 // optional int32 num_omp_threads = 44 [default = 1];
2532 inline bool GlopParameters::_internal_has_num_omp_threads() const {
2533  bool value = (_has_bits_[1] & 0x00000400u) != 0;
2534  return value;
2535 }
2536 inline bool GlopParameters::has_num_omp_threads() const {
2537  return _internal_has_num_omp_threads();
2538 }
2539 inline void GlopParameters::clear_num_omp_threads() {
2540  num_omp_threads_ = 1;
2541  _has_bits_[1] &= ~0x00000400u;
2542 }
2543 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::_internal_num_omp_threads() const {
2544  return num_omp_threads_;
2545 }
2546 inline ::PROTOBUF_NAMESPACE_ID::int32 GlopParameters::num_omp_threads() const {
2547  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.num_omp_threads)
2548  return _internal_num_omp_threads();
2549 }
2550 inline void GlopParameters::_internal_set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value) {
2551  _has_bits_[1] |= 0x00000400u;
2552  num_omp_threads_ = value;
2553 }
2554 inline void GlopParameters::set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value) {
2555  _internal_set_num_omp_threads(value);
2556  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.num_omp_threads)
2557 }
2558 
2559 // optional bool perturb_costs_in_dual_simplex = 53 [default = false];
2560 inline bool GlopParameters::_internal_has_perturb_costs_in_dual_simplex() const {
2561  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2562  return value;
2563 }
2564 inline bool GlopParameters::has_perturb_costs_in_dual_simplex() const {
2565  return _internal_has_perturb_costs_in_dual_simplex();
2566 }
2567 inline void GlopParameters::clear_perturb_costs_in_dual_simplex() {
2568  perturb_costs_in_dual_simplex_ = false;
2569  _has_bits_[0] &= ~0x00000004u;
2570 }
2571 inline bool GlopParameters::_internal_perturb_costs_in_dual_simplex() const {
2572  return perturb_costs_in_dual_simplex_;
2573 }
2574 inline bool GlopParameters::perturb_costs_in_dual_simplex() const {
2575  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2576  return _internal_perturb_costs_in_dual_simplex();
2577 }
2578 inline void GlopParameters::_internal_set_perturb_costs_in_dual_simplex(bool value) {
2579  _has_bits_[0] |= 0x00000004u;
2580  perturb_costs_in_dual_simplex_ = value;
2581 }
2582 inline void GlopParameters::set_perturb_costs_in_dual_simplex(bool value) {
2583  _internal_set_perturb_costs_in_dual_simplex(value);
2584  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.perturb_costs_in_dual_simplex)
2585 }
2586 
2587 // optional double relative_cost_perturbation = 54 [default = 1e-05];
2588 inline bool GlopParameters::_internal_has_relative_cost_perturbation() const {
2589  bool value = (_has_bits_[1] & 0x00002000u) != 0;
2590  return value;
2591 }
2592 inline bool GlopParameters::has_relative_cost_perturbation() const {
2593  return _internal_has_relative_cost_perturbation();
2594 }
2595 inline void GlopParameters::clear_relative_cost_perturbation() {
2596  relative_cost_perturbation_ = 1e-05;
2597  _has_bits_[1] &= ~0x00002000u;
2598 }
2599 inline double GlopParameters::_internal_relative_cost_perturbation() const {
2600  return relative_cost_perturbation_;
2601 }
2602 inline double GlopParameters::relative_cost_perturbation() const {
2603  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_cost_perturbation)
2604  return _internal_relative_cost_perturbation();
2605 }
2606 inline void GlopParameters::_internal_set_relative_cost_perturbation(double value) {
2607  _has_bits_[1] |= 0x00002000u;
2608  relative_cost_perturbation_ = value;
2609 }
2610 inline void GlopParameters::set_relative_cost_perturbation(double value) {
2611  _internal_set_relative_cost_perturbation(value);
2612  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_cost_perturbation)
2613 }
2614 
2615 // optional double relative_max_cost_perturbation = 55 [default = 1e-07];
2616 inline bool GlopParameters::_internal_has_relative_max_cost_perturbation() const {
2617  bool value = (_has_bits_[1] & 0x00004000u) != 0;
2618  return value;
2619 }
2620 inline bool GlopParameters::has_relative_max_cost_perturbation() const {
2621  return _internal_has_relative_max_cost_perturbation();
2622 }
2623 inline void GlopParameters::clear_relative_max_cost_perturbation() {
2624  relative_max_cost_perturbation_ = 1e-07;
2625  _has_bits_[1] &= ~0x00004000u;
2626 }
2627 inline double GlopParameters::_internal_relative_max_cost_perturbation() const {
2628  return relative_max_cost_perturbation_;
2629 }
2630 inline double GlopParameters::relative_max_cost_perturbation() const {
2631  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2632  return _internal_relative_max_cost_perturbation();
2633 }
2634 inline void GlopParameters::_internal_set_relative_max_cost_perturbation(double value) {
2635  _has_bits_[1] |= 0x00004000u;
2636  relative_max_cost_perturbation_ = value;
2637 }
2638 inline void GlopParameters::set_relative_max_cost_perturbation(double value) {
2639  _internal_set_relative_max_cost_perturbation(value);
2640  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.relative_max_cost_perturbation)
2641 }
2642 
2643 // optional double initial_condition_number_threshold = 59 [default = 1e+50];
2644 inline bool GlopParameters::_internal_has_initial_condition_number_threshold() const {
2645  bool value = (_has_bits_[1] & 0x00040000u) != 0;
2646  return value;
2647 }
2648 inline bool GlopParameters::has_initial_condition_number_threshold() const {
2649  return _internal_has_initial_condition_number_threshold();
2650 }
2651 inline void GlopParameters::clear_initial_condition_number_threshold() {
2652  initial_condition_number_threshold_ = 1e+50;
2653  _has_bits_[1] &= ~0x00040000u;
2654 }
2655 inline double GlopParameters::_internal_initial_condition_number_threshold() const {
2656  return initial_condition_number_threshold_;
2657 }
2658 inline double GlopParameters::initial_condition_number_threshold() const {
2659  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2660  return _internal_initial_condition_number_threshold();
2661 }
2662 inline void GlopParameters::_internal_set_initial_condition_number_threshold(double value) {
2663  _has_bits_[1] |= 0x00040000u;
2664  initial_condition_number_threshold_ = value;
2665 }
2666 inline void GlopParameters::set_initial_condition_number_threshold(double value) {
2667  _internal_set_initial_condition_number_threshold(value);
2668  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.initial_condition_number_threshold)
2669 }
2670 
2671 // optional bool log_search_progress = 61 [default = false];
2672 inline bool GlopParameters::_internal_has_log_search_progress() const {
2673  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2674  return value;
2675 }
2676 inline bool GlopParameters::has_log_search_progress() const {
2677  return _internal_has_log_search_progress();
2678 }
2679 inline void GlopParameters::clear_log_search_progress() {
2680  log_search_progress_ = false;
2681  _has_bits_[0] &= ~0x00000008u;
2682 }
2683 inline bool GlopParameters::_internal_log_search_progress() const {
2684  return log_search_progress_;
2685 }
2686 inline bool GlopParameters::log_search_progress() const {
2687  // @@protoc_insertion_point(field_get:operations_research.glop.GlopParameters.log_search_progress)
2688  return _internal_log_search_progress();
2689 }
2690 inline void GlopParameters::_internal_set_log_search_progress(bool value) {
2691  _has_bits_[0] |= 0x00000008u;
2692  log_search_progress_ = value;
2693 }
2694 inline void GlopParameters::set_log_search_progress(bool value) {
2695  _internal_set_log_search_progress(value);
2696  // @@protoc_insertion_point(field_set:operations_research.glop.GlopParameters.log_search_progress)
2697 }
2698 
2699 #ifdef __GNUC__
2700  #pragma GCC diagnostic pop
2701 #endif // __GNUC__
2702 
2703 // @@protoc_insertion_point(namespace_scope)
2704 
2705 } // namespace glop
2706 } // namespace operations_research
2707 
2708 PROTOBUF_NAMESPACE_OPEN
2709 
2710 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_ScalingAlgorithm> : ::std::true_type {};
2711 template <>
2712 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_ScalingAlgorithm>() {
2714 }
2715 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_SolverBehavior> : ::std::true_type {};
2716 template <>
2717 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_SolverBehavior>() {
2719 }
2720 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_PricingRule> : ::std::true_type {};
2721 template <>
2722 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_PricingRule>() {
2724 }
2725 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_InitialBasisHeuristic> : ::std::true_type {};
2726 template <>
2727 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_InitialBasisHeuristic>() {
2729 }
2730 template <> struct is_proto_enum< ::operations_research::glop::GlopParameters_CostScalingAlgorithm> : ::std::true_type {};
2731 template <>
2732 inline const EnumDescriptor* GetEnumDescriptor< ::operations_research::glop::GlopParameters_CostScalingAlgorithm>() {
2734 }
2735 
2736 PROTOBUF_NAMESPACE_CLOSE
2737 
2738 // @@protoc_insertion_point(global_scope)
2739 
2740 #include <google/protobuf/port_undef.inc>
2741 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ortools_2fglop_2fparameters_2eproto
void set_lu_factorization_pivot_threshold(double value)
static bool CostScalingAlgorithm_IsValid(int value)
GlopParameters(GlopParameters &&from) noexcept
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SolverBehavior_descriptor()
void set_optimization_rule(::operations_research::glop::GlopParameters_PricingRule value)
::operations_research::glop::GlopParameters_PricingRule optimization_rule() const
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
GlopParameters & operator=(GlopParameters &&from) noexcept
static bool CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CostScalingAlgorithm *value)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void set_relative_cost_perturbation(double value)
void set_markowitz_singularity_threshold(double value)
::operations_research::glop::GlopParameters_PricingRule feasibility_rule() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
void set_dual_small_pivot_threshold(double value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * ScalingAlgorithm_descriptor()
void set_scaling_method(::operations_research::glop::GlopParameters_ScalingAlgorithm value)
void set_max_number_of_iterations(::PROTOBUF_NAMESPACE_ID::int64 value)
GlopParameters * New() const final
::operations_research::glop::GlopParameters_InitialBasisHeuristic initial_basis() const
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
void set_solve_dual_problem(::operations_research::glop::GlopParameters_SolverBehavior value)
GlopParameters * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CostScalingAlgorithm_descriptor()
void set_initialize_devex_with_column_norms(bool value)
static const std::string & InitialBasisHeuristic_Name(T enum_t_value)
void set_recompute_edges_norm_threshold(double value)
void set_ratio_test_zero_threshold(double value)
::PROTOBUF_NAMESPACE_ID::int32 markowitz_zlatev_parameter() const
::PROTOBUF_NAMESPACE_ID::int32 num_omp_threads() const
GlopParameters(::PROTOBUF_NAMESPACE_ID::Arena *arena)
static bool ScalingAlgorithm_IsValid(int value)
GlopParameters & operator=(const GlopParameters &from)
static bool SolverBehavior_IsValid(int value)
void UnsafeArenaSwap(GlopParameters *other)
static bool InitialBasisHeuristic_IsValid(int value)
static const std::string & SolverBehavior_Name(T enum_t_value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * InitialBasisHeuristic_descriptor()
void set_dual_feasibility_tolerance(double value)
void set_cost_scaling(::operations_research::glop::GlopParameters_CostScalingAlgorithm value)
GlopParameters_SolverBehavior SolverBehavior
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
static const std::string & PricingRule_Name(T enum_t_value)
static bool PricingRule_IsValid(int value)
static const std::string & CostScalingAlgorithm_Name(T enum_t_value)
void set_max_number_of_reoptimizations(double value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * PricingRule_descriptor()
friend void swap(GlopParameters &a, GlopParameters &b)
void set_feasibility_rule(::operations_research::glop::GlopParameters_PricingRule value)
void set_exploit_singleton_column_in_initial_basis(bool value)
void set_refactorization_threshold(double value)
::PROTOBUF_NAMESPACE_ID::int64 max_number_of_iterations() const
static const GlopParameters & default_instance()
::operations_research::glop::GlopParameters_CostScalingAlgorithm cost_scaling() const
static const GlopParameters * internal_default_instance()
void set_provide_strong_optimal_guarantee(bool value)
::PROTOBUF_NAMESPACE_ID::int32 devex_weights_reset_period() const
void set_markowitz_zlatev_parameter(::PROTOBUF_NAMESPACE_ID::int32 value)
void MergeFrom(const GlopParameters &from)
void set_random_seed(::PROTOBUF_NAMESPACE_ID::int32 value)
GlopParameters_PricingRule PricingRule
void set_initial_basis(::operations_research::glop::GlopParameters_InitialBasisHeuristic value)
::PROTOBUF_NAMESPACE_ID::int32 basis_refactorization_period() const
void Swap(GlopParameters *other)
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
void set_devex_weights_reset_period(::PROTOBUF_NAMESPACE_ID::int32 value)
::operations_research::glop::GlopParameters_SolverBehavior solve_dual_problem() const
::PROTOBUF_NAMESPACE_ID::int32 random_seed() const
GlopParameters_ScalingAlgorithm ScalingAlgorithm
static const std::string & ScalingAlgorithm_Name(T enum_t_value)
void CopyFrom(const GlopParameters &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static bool ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ScalingAlgorithm *value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
GlopParameters(const GlopParameters &from)
void set_basis_refactorization_period(::PROTOBUF_NAMESPACE_ID::int32 value)
static bool InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, InitialBasisHeuristic *value)
void set_relative_max_cost_perturbation(double value)
GlopParameters_InitialBasisHeuristic InitialBasisHeuristic
::operations_research::glop::GlopParameters_ScalingAlgorithm scaling_method() const
void set_initial_condition_number_threshold(double value)
void set_degenerate_ministep_factor(double value)
void set_recompute_reduced_costs_threshold(double value)
void set_primal_feasibility_tolerance(double value)
void set_num_omp_threads(::PROTOBUF_NAMESPACE_ID::int32 value)
void set_preprocessor_zero_tolerance(double value)
GlopParameters_CostScalingAlgorithm CostScalingAlgorithm
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
void set_solution_feasibility_tolerance(double value)
static bool PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PricingRule *value)
static bool SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, SolverBehavior *value)
const std::string name
int64 value
unsigned int uint32
int int32
int64_t int64
unsigned char uint8
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_PricingRule_descriptor()
constexpr GlopParameters_InitialBasisHeuristic GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_MAX
constexpr int GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_ARRAYSIZE
bool GlopParameters_CostScalingAlgorithm_IsValid(int value)
constexpr GlopParameters_PricingRule GlopParameters_PricingRule_PricingRule_MIN
bool GlopParameters_InitialBasisHeuristic_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_InitialBasisHeuristic *value)
constexpr int GlopParameters_SolverBehavior_SolverBehavior_ARRAYSIZE
const std::string & GlopParameters_CostScalingAlgorithm_Name(T enum_t_value)
constexpr int GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_ARRAYSIZE
const std::string & GlopParameters_InitialBasisHeuristic_Name(T enum_t_value)
constexpr GlopParameters_ScalingAlgorithm GlopParameters_ScalingAlgorithm_ScalingAlgorithm_MIN
Definition: parameters.pb.h:76
const std::string & GlopParameters_ScalingAlgorithm_Name(T enum_t_value)
Definition: parameters.pb.h:82
bool GlopParameters_CostScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_CostScalingAlgorithm *value)
constexpr int GlopParameters_PricingRule_PricingRule_ARRAYSIZE
constexpr GlopParameters_ScalingAlgorithm GlopParameters_ScalingAlgorithm_ScalingAlgorithm_MAX
Definition: parameters.pb.h:77
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_ScalingAlgorithm_descriptor()
bool GlopParameters_InitialBasisHeuristic_IsValid(int value)
class operations_research::glop::GlopParametersDefaultTypeInternal _GlopParameters_default_instance_
Definition: parameters.pb.h:60
constexpr GlopParameters_PricingRule GlopParameters_PricingRule_PricingRule_MAX
constexpr int GlopParameters_ScalingAlgorithm_ScalingAlgorithm_ARRAYSIZE
Definition: parameters.pb.h:78
bool GlopParameters_SolverBehavior_IsValid(int value)
constexpr GlopParameters_CostScalingAlgorithm GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_MIN
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_SolverBehavior_descriptor()
constexpr GlopParameters_CostScalingAlgorithm GlopParameters_CostScalingAlgorithm_CostScalingAlgorithm_MAX
constexpr GlopParameters_InitialBasisHeuristic GlopParameters_InitialBasisHeuristic_InitialBasisHeuristic_MIN
const std::string & GlopParameters_SolverBehavior_Name(T enum_t_value)
constexpr GlopParameters_SolverBehavior GlopParameters_SolverBehavior_SolverBehavior_MIN
@ GlopParameters_CostScalingAlgorithm_MEAN_COST_SCALING
@ GlopParameters_CostScalingAlgorithm_NO_COST_SCALING
@ GlopParameters_CostScalingAlgorithm_MEDIAN_COST_SCALING
@ GlopParameters_CostScalingAlgorithm_CONTAIN_ONE_COST_SCALING
bool GlopParameters_ScalingAlgorithm_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_ScalingAlgorithm *value)
Definition: parameters.pb.h:89
constexpr GlopParameters_SolverBehavior GlopParameters_SolverBehavior_SolverBehavior_MAX
bool GlopParameters_PricingRule_IsValid(int value)
bool GlopParameters_ScalingAlgorithm_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_InitialBasisHeuristic_descriptor()
bool GlopParameters_SolverBehavior_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_SolverBehavior *value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * GlopParameters_CostScalingAlgorithm_descriptor()
const std::string & GlopParameters_PricingRule_Name(T enum_t_value)
bool GlopParameters_PricingRule_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, GlopParameters_PricingRule *value)
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: parameters.pb.h:54
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
Definition: parameters.pb.h:53
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
Definition: parameters.pb.h:52