OR-Tools  9.1
boolean_problem.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/boolean_problem.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 
18 PROTOBUF_PRAGMA_INIT_SEG
19 namespace operations_research {
20 namespace sat {
22  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
23  : literals_()
24  , coefficients_()
25  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
26  , lower_bound_(int64_t{0})
27  , upper_bound_(int64_t{0}){}
30  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
32  union {
34  };
35 };
38  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
39  : literals_()
40  , coefficients_()
41  , offset_(0)
42  , scaling_factor_(1){}
45  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
47  union {
49  };
50 };
51 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearObjectiveDefaultTypeInternal _LinearObjective_default_instance_;
53  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
54  : literals_(){}
57  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
59  union {
61  };
62 };
63 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BooleanAssignmentDefaultTypeInternal _BooleanAssignment_default_instance_;
65  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
66  : constraints_()
67  , var_names_()
68  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
69  , objective_(nullptr)
70  , assignment_(nullptr)
71  , num_variables_(0)
72  , original_num_variables_(0){}
75  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
77  union {
79  };
80 };
82 } // namespace sat
83 } // namespace operations_research
84 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fboolean_5fproblem_2eproto[4];
85 static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto = nullptr;
86 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto = nullptr;
87 
88 const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fboolean_5fproblem_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
89  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, _has_bits_),
90  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, _internal_metadata_),
91  ~0u, // no _extensions_
92  ~0u, // no _oneof_case_
93  ~0u, // no _weak_field_map_
94  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, literals_),
95  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, coefficients_),
96  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, lower_bound_),
97  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, upper_bound_),
98  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanConstraint, name_),
99  ~0u,
100  ~0u,
101  1,
102  2,
103  0,
104  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, _has_bits_),
105  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, _internal_metadata_),
106  ~0u, // no _extensions_
107  ~0u, // no _oneof_case_
108  ~0u, // no _weak_field_map_
109  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, literals_),
110  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, coefficients_),
111  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, offset_),
112  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearObjective, scaling_factor_),
113  ~0u,
114  ~0u,
115  0,
116  1,
117  ~0u, // no _has_bits_
118  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BooleanAssignment, _internal_metadata_),
119  ~0u, // no _extensions_
120  ~0u, // no _oneof_case_
121  ~0u, // no _weak_field_map_
122  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BooleanAssignment, literals_),
123  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, _has_bits_),
124  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, _internal_metadata_),
125  ~0u, // no _extensions_
126  ~0u, // no _oneof_case_
127  ~0u, // no _weak_field_map_
128  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, name_),
129  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, num_variables_),
130  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, constraints_),
132  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, var_names_),
133  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, assignment_),
134  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearBooleanProblem, original_num_variables_),
135  0,
136  3,
137  ~0u,
138  1,
139  ~0u,
140  2,
141  4,
142 };
143 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
148 };
149 
150 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
151  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearBooleanConstraint_default_instance_),
152  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearObjective_default_instance_),
153  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BooleanAssignment_default_instance_),
154  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearBooleanProblem_default_instance_),
155 };
156 
157 const char descriptor_table_protodef_ortools_2fsat_2fboolean_5fproblem_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
158  "\n!ortools/sat/boolean_problem.proto\022\027ope"
159  "rations_research.sat\"{\n\027LinearBooleanCon"
160  "straint\022\020\n\010literals\030\001 \003(\005\022\024\n\014coefficient"
161  "s\030\002 \003(\003\022\023\n\013lower_bound\030\003 \001(\003\022\023\n\013upper_bo"
162  "und\030\004 \001(\003\022\016\n\004name\030\005 \001(\t:\000\"g\n\017LinearObjec"
163  "tive\022\020\n\010literals\030\001 \003(\005\022\024\n\014coefficients\030\002"
164  " \003(\003\022\021\n\006offset\030\003 \001(\001:\0010\022\031\n\016scaling_facto"
165  "r\030\004 \001(\001:\0011\"%\n\021BooleanAssignment\022\020\n\010liter"
166  "als\030\001 \003(\005\"\264\002\n\024LinearBooleanProblem\022\016\n\004na"
167  "me\030\001 \001(\t:\000\022\025\n\rnum_variables\030\003 \001(\005\022E\n\013con"
168  "straints\030\004 \003(\01320.operations_research.sat"
169  ".LinearBooleanConstraint\022;\n\tobjective\030\005 "
170  "\001(\0132(.operations_research.sat.LinearObje"
171  "ctive\022\021\n\tvar_names\030\006 \003(\t\022>\n\nassignment\030\007"
172  " \001(\0132*.operations_research.sat.BooleanAs"
173  "signment\022\036\n\026original_num_variables\030\010 \001(\005"
174  "B/\n\026com.google.ortools.satP\001\252\002\022Google.Or"
175  "Tools.Sat"
176  ;
177 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_once;
178 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto = {
179  false, false, 689, descriptor_table_protodef_ortools_2fsat_2fboolean_5fproblem_2eproto, "ortools/sat/boolean_problem.proto",
183 };
184 PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_getter() {
186 }
187 
188 // Force running AddDescriptors() at dynamic initialization time.
189 PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fsat_2fboolean_5fproblem_2eproto(&descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto);
190 namespace operations_research {
191 namespace sat {
192 
193 // ===================================================================
194 
196  public:
197  using HasBits = decltype(std::declval<LinearBooleanConstraint>()._has_bits_);
198  static void set_has_lower_bound(HasBits* has_bits) {
199  (*has_bits)[0] |= 2u;
200  }
201  static void set_has_upper_bound(HasBits* has_bits) {
202  (*has_bits)[0] |= 4u;
203  }
204  static void set_has_name(HasBits* has_bits) {
205  (*has_bits)[0] |= 1u;
206  }
207 };
208 
209 LinearBooleanConstraint::LinearBooleanConstraint(::PROTOBUF_NAMESPACE_ID::Arena* arena,
210  bool is_message_owned)
211  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
212  literals_(arena),
213  coefficients_(arena) {
214  SharedCtor();
215  if (!is_message_owned) {
216  RegisterArenaDtor(arena);
217  }
218  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearBooleanConstraint)
219 }
221  : ::PROTOBUF_NAMESPACE_ID::Message(),
222  _has_bits_(from._has_bits_),
223  literals_(from.literals_),
224  coefficients_(from.coefficients_) {
225  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
226  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
227  if (from._internal_has_name()) {
228  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
229  GetArenaForAllocation());
230  }
231  ::memcpy(&lower_bound_, &from.lower_bound_,
232  static_cast<size_t>(reinterpret_cast<char*>(&upper_bound_) -
233  reinterpret_cast<char*>(&lower_bound_)) + sizeof(upper_bound_));
234  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearBooleanConstraint)
235 }
236 
237 inline void LinearBooleanConstraint::SharedCtor() {
238 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
239 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
240  reinterpret_cast<char*>(&lower_bound_) - reinterpret_cast<char*>(this)),
241  0, static_cast<size_t>(reinterpret_cast<char*>(&upper_bound_) -
242  reinterpret_cast<char*>(&lower_bound_)) + sizeof(upper_bound_));
243 }
244 
246  // @@protoc_insertion_point(destructor:operations_research.sat.LinearBooleanConstraint)
247  if (GetArenaForAllocation() != nullptr) return;
248  SharedDtor();
249  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
250 }
251 
252 inline void LinearBooleanConstraint::SharedDtor() {
253  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
254  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
255 }
256 
257 void LinearBooleanConstraint::ArenaDtor(void* object) {
258  LinearBooleanConstraint* _this = reinterpret_cast< LinearBooleanConstraint* >(object);
259  (void)_this;
260 }
261 void LinearBooleanConstraint::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
262 }
263 void LinearBooleanConstraint::SetCachedSize(int size) const {
264  _cached_size_.Set(size);
265 }
266 
268 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearBooleanConstraint)
269  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
270  // Prevent compiler warnings about cached_has_bits being unused
271  (void) cached_has_bits;
272 
273  literals_.Clear();
274  coefficients_.Clear();
275  cached_has_bits = _has_bits_[0];
276  if (cached_has_bits & 0x00000001u) {
277  name_.ClearNonDefaultToEmpty();
278  }
279  if (cached_has_bits & 0x00000006u) {
280  ::memset(&lower_bound_, 0, static_cast<size_t>(
281  reinterpret_cast<char*>(&upper_bound_) -
282  reinterpret_cast<char*>(&lower_bound_)) + sizeof(upper_bound_));
283  }
284  _has_bits_.Clear();
285  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
286 }
287 
288 const char* LinearBooleanConstraint::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
289 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
290  _Internal::HasBits has_bits{};
291  while (!ctx->Done(&ptr)) {
292  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
293  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
294  switch (tag >> 3) {
295  // repeated int32 literals = 1;
296  case 1:
297  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
298  ptr -= 1;
299  do {
300  ptr += 1;
301  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
302  CHK_(ptr);
303  if (!ctx->DataAvailable(ptr)) break;
304  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
305  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10) {
306  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
307  CHK_(ptr);
308  } else goto handle_unusual;
309  continue;
310  // repeated int64 coefficients = 2;
311  case 2:
312  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
313  ptr -= 1;
314  do {
315  ptr += 1;
316  _internal_add_coefficients(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
317  CHK_(ptr);
318  if (!ctx->DataAvailable(ptr)) break;
319  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<16>(ptr));
320  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18) {
321  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coefficients(), ptr, ctx);
322  CHK_(ptr);
323  } else goto handle_unusual;
324  continue;
325  // optional int64 lower_bound = 3;
326  case 3:
327  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
329  lower_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
330  CHK_(ptr);
331  } else goto handle_unusual;
332  continue;
333  // optional int64 upper_bound = 4;
334  case 4:
335  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
337  upper_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
338  CHK_(ptr);
339  } else goto handle_unusual;
340  continue;
341  // optional string name = 5 [default = ""];
342  case 5:
343  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
344  auto str = _internal_mutable_name();
345  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
346  #ifndef NDEBUG
347  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.LinearBooleanConstraint.name");
348  #endif // !NDEBUG
349  CHK_(ptr);
350  } else goto handle_unusual;
351  continue;
352  default: {
353  handle_unusual:
354  if ((tag == 0) || ((tag & 7) == 4)) {
355  CHK_(ptr);
356  ctx->SetLastTag(tag);
357  goto success;
358  }
359  ptr = UnknownFieldParse(tag,
360  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
361  ptr, ctx);
362  CHK_(ptr != nullptr);
363  continue;
364  }
365  } // switch
366  } // while
367 success:
368  _has_bits_.Or(has_bits);
369  return ptr;
370 failure:
371  ptr = nullptr;
372  goto success;
373 #undef CHK_
374 }
375 
376 ::PROTOBUF_NAMESPACE_ID::uint8* LinearBooleanConstraint::_InternalSerialize(
377  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
378  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearBooleanConstraint)
379  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
380  (void) cached_has_bits;
381 
382  // repeated int32 literals = 1;
383  for (int i = 0, n = this->_internal_literals_size(); i < n; i++) {
384  target = stream->EnsureSpace(target);
385  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_literals(i), target);
386  }
387 
388  // repeated int64 coefficients = 2;
389  for (int i = 0, n = this->_internal_coefficients_size(); i < n; i++) {
390  target = stream->EnsureSpace(target);
391  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_coefficients(i), target);
392  }
393 
394  cached_has_bits = _has_bits_[0];
395  // optional int64 lower_bound = 3;
396  if (cached_has_bits & 0x00000002u) {
397  target = stream->EnsureSpace(target);
398  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_lower_bound(), target);
399  }
400 
401  // optional int64 upper_bound = 4;
402  if (cached_has_bits & 0x00000004u) {
403  target = stream->EnsureSpace(target);
404  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_upper_bound(), target);
405  }
406 
407  // optional string name = 5 [default = ""];
408  if (cached_has_bits & 0x00000001u) {
409  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
410  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
411  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
412  "operations_research.sat.LinearBooleanConstraint.name");
413  target = stream->WriteStringMaybeAliased(
414  5, this->_internal_name(), target);
415  }
416 
417  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
418  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
419  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
420  }
421  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearBooleanConstraint)
422  return target;
423 }
424 
426 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearBooleanConstraint)
427  size_t total_size = 0;
428 
429  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
430  // Prevent compiler warnings about cached_has_bits being unused
431  (void) cached_has_bits;
432 
433  // repeated int32 literals = 1;
434  {
435  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
436  Int32Size(this->literals_);
437  total_size += 1 *
438  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
439  total_size += data_size;
440  }
441 
442  // repeated int64 coefficients = 2;
443  {
444  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
445  Int64Size(this->coefficients_);
446  total_size += 1 *
447  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_coefficients_size());
448  total_size += data_size;
449  }
450 
451  cached_has_bits = _has_bits_[0];
452  if (cached_has_bits & 0x00000007u) {
453  // optional string name = 5 [default = ""];
454  if (cached_has_bits & 0x00000001u) {
455  total_size += 1 +
456  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
457  this->_internal_name());
458  }
459 
460  // optional int64 lower_bound = 3;
461  if (cached_has_bits & 0x00000002u) {
462  total_size += 1 +
463  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
464  this->_internal_lower_bound());
465  }
466 
467  // optional int64 upper_bound = 4;
468  if (cached_has_bits & 0x00000004u) {
469  total_size += 1 +
470  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
471  this->_internal_upper_bound());
472  }
473 
474  }
475  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
476  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
477  _internal_metadata_, total_size, &_cached_size_);
478  }
479  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
480  SetCachedSize(cached_size);
481  return total_size;
482 }
483 
484 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearBooleanConstraint::_class_data_ = {
485  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
486  LinearBooleanConstraint::MergeImpl
487 };
488 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearBooleanConstraint::GetClassData() const { return &_class_data_; }
489 
490 void LinearBooleanConstraint::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
491  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
492  static_cast<LinearBooleanConstraint *>(to)->MergeFrom(
493  static_cast<const LinearBooleanConstraint &>(from));
494 }
495 
496 
498 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearBooleanConstraint)
499  GOOGLE_DCHECK_NE(&from, this);
500  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
501  (void) cached_has_bits;
502 
503  literals_.MergeFrom(from.literals_);
504  coefficients_.MergeFrom(from.coefficients_);
505  cached_has_bits = from._has_bits_[0];
506  if (cached_has_bits & 0x00000007u) {
507  if (cached_has_bits & 0x00000001u) {
508  _internal_set_name(from._internal_name());
509  }
510  if (cached_has_bits & 0x00000002u) {
511  lower_bound_ = from.lower_bound_;
512  }
513  if (cached_has_bits & 0x00000004u) {
514  upper_bound_ = from.upper_bound_;
515  }
516  _has_bits_[0] |= cached_has_bits;
517  }
518  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
519 }
520 
522 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearBooleanConstraint)
523  if (&from == this) return;
524  Clear();
525  MergeFrom(from);
526 }
527 
529  return true;
530 }
531 
532 void LinearBooleanConstraint::InternalSwap(LinearBooleanConstraint* other) {
533  using std::swap;
534  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
535  swap(_has_bits_[0], other->_has_bits_[0]);
536  literals_.InternalSwap(&other->literals_);
537  coefficients_.InternalSwap(&other->coefficients_);
538  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
539  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
540  &name_, GetArenaForAllocation(),
541  &other->name_, other->GetArenaForAllocation()
542  );
543  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
544  PROTOBUF_FIELD_OFFSET(LinearBooleanConstraint, upper_bound_)
545  + sizeof(LinearBooleanConstraint::upper_bound_)
546  - PROTOBUF_FIELD_OFFSET(LinearBooleanConstraint, lower_bound_)>(
547  reinterpret_cast<char*>(&lower_bound_),
548  reinterpret_cast<char*>(&other->lower_bound_));
549 }
550 
551 ::PROTOBUF_NAMESPACE_ID::Metadata LinearBooleanConstraint::GetMetadata() const {
552  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
555 }
556 
557 // ===================================================================
558 
560  public:
561  using HasBits = decltype(std::declval<LinearObjective>()._has_bits_);
562  static void set_has_offset(HasBits* has_bits) {
563  (*has_bits)[0] |= 1u;
564  }
565  static void set_has_scaling_factor(HasBits* has_bits) {
566  (*has_bits)[0] |= 2u;
567  }
568 };
569 
570 LinearObjective::LinearObjective(::PROTOBUF_NAMESPACE_ID::Arena* arena,
571  bool is_message_owned)
572  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
573  literals_(arena),
574  coefficients_(arena) {
575  SharedCtor();
576  if (!is_message_owned) {
577  RegisterArenaDtor(arena);
578  }
579  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearObjective)
580 }
582  : ::PROTOBUF_NAMESPACE_ID::Message(),
583  _has_bits_(from._has_bits_),
584  literals_(from.literals_),
585  coefficients_(from.coefficients_) {
586  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
587  ::memcpy(&offset_, &from.offset_,
588  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
589  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
590  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearObjective)
591 }
592 
593 inline void LinearObjective::SharedCtor() {
594 offset_ = 0;
595 scaling_factor_ = 1;
596 }
597 
599  // @@protoc_insertion_point(destructor:operations_research.sat.LinearObjective)
600  if (GetArenaForAllocation() != nullptr) return;
601  SharedDtor();
602  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
603 }
604 
605 inline void LinearObjective::SharedDtor() {
606  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
607 }
608 
609 void LinearObjective::ArenaDtor(void* object) {
610  LinearObjective* _this = reinterpret_cast< LinearObjective* >(object);
611  (void)_this;
612 }
613 void LinearObjective::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
614 }
615 void LinearObjective::SetCachedSize(int size) const {
616  _cached_size_.Set(size);
617 }
618 
620 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearObjective)
621  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
622  // Prevent compiler warnings about cached_has_bits being unused
623  (void) cached_has_bits;
624 
625  literals_.Clear();
626  coefficients_.Clear();
627  cached_has_bits = _has_bits_[0];
628  if (cached_has_bits & 0x00000003u) {
629  offset_ = 0;
630  scaling_factor_ = 1;
631  }
632  _has_bits_.Clear();
633  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
634 }
635 
636 const char* LinearObjective::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
637 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
638  _Internal::HasBits has_bits{};
639  while (!ctx->Done(&ptr)) {
640  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
641  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
642  switch (tag >> 3) {
643  // repeated int32 literals = 1;
644  case 1:
645  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
646  ptr -= 1;
647  do {
648  ptr += 1;
649  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
650  CHK_(ptr);
651  if (!ctx->DataAvailable(ptr)) break;
652  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
653  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10) {
654  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
655  CHK_(ptr);
656  } else goto handle_unusual;
657  continue;
658  // repeated int64 coefficients = 2;
659  case 2:
660  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
661  ptr -= 1;
662  do {
663  ptr += 1;
664  _internal_add_coefficients(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
665  CHK_(ptr);
666  if (!ctx->DataAvailable(ptr)) break;
667  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<16>(ptr));
668  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18) {
669  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coefficients(), ptr, ctx);
670  CHK_(ptr);
671  } else goto handle_unusual;
672  continue;
673  // optional double offset = 3 [default = 0];
674  case 3:
675  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
676  _Internal::set_has_offset(&has_bits);
677  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
678  ptr += sizeof(double);
679  } else goto handle_unusual;
680  continue;
681  // optional double scaling_factor = 4 [default = 1];
682  case 4:
683  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
685  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
686  ptr += sizeof(double);
687  } else goto handle_unusual;
688  continue;
689  default: {
690  handle_unusual:
691  if ((tag == 0) || ((tag & 7) == 4)) {
692  CHK_(ptr);
693  ctx->SetLastTag(tag);
694  goto success;
695  }
696  ptr = UnknownFieldParse(tag,
697  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
698  ptr, ctx);
699  CHK_(ptr != nullptr);
700  continue;
701  }
702  } // switch
703  } // while
704 success:
705  _has_bits_.Or(has_bits);
706  return ptr;
707 failure:
708  ptr = nullptr;
709  goto success;
710 #undef CHK_
711 }
712 
713 ::PROTOBUF_NAMESPACE_ID::uint8* LinearObjective::_InternalSerialize(
714  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
715  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearObjective)
716  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
717  (void) cached_has_bits;
718 
719  // repeated int32 literals = 1;
720  for (int i = 0, n = this->_internal_literals_size(); i < n; i++) {
721  target = stream->EnsureSpace(target);
722  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_literals(i), target);
723  }
724 
725  // repeated int64 coefficients = 2;
726  for (int i = 0, n = this->_internal_coefficients_size(); i < n; i++) {
727  target = stream->EnsureSpace(target);
728  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_coefficients(i), target);
729  }
730 
731  cached_has_bits = _has_bits_[0];
732  // optional double offset = 3 [default = 0];
733  if (cached_has_bits & 0x00000001u) {
734  target = stream->EnsureSpace(target);
735  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_offset(), target);
736  }
737 
738  // optional double scaling_factor = 4 [default = 1];
739  if (cached_has_bits & 0x00000002u) {
740  target = stream->EnsureSpace(target);
741  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_scaling_factor(), target);
742  }
743 
744  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
745  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
746  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
747  }
748  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearObjective)
749  return target;
750 }
751 
753 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearObjective)
754  size_t total_size = 0;
755 
756  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
757  // Prevent compiler warnings about cached_has_bits being unused
758  (void) cached_has_bits;
759 
760  // repeated int32 literals = 1;
761  {
762  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
763  Int32Size(this->literals_);
764  total_size += 1 *
765  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
766  total_size += data_size;
767  }
768 
769  // repeated int64 coefficients = 2;
770  {
771  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
772  Int64Size(this->coefficients_);
773  total_size += 1 *
774  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_coefficients_size());
775  total_size += data_size;
776  }
777 
778  cached_has_bits = _has_bits_[0];
779  if (cached_has_bits & 0x00000003u) {
780  // optional double offset = 3 [default = 0];
781  if (cached_has_bits & 0x00000001u) {
782  total_size += 1 + 8;
783  }
784 
785  // optional double scaling_factor = 4 [default = 1];
786  if (cached_has_bits & 0x00000002u) {
787  total_size += 1 + 8;
788  }
789 
790  }
791  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
792  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
793  _internal_metadata_, total_size, &_cached_size_);
794  }
795  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
796  SetCachedSize(cached_size);
797  return total_size;
798 }
799 
800 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearObjective::_class_data_ = {
801  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
802  LinearObjective::MergeImpl
803 };
804 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearObjective::GetClassData() const { return &_class_data_; }
805 
806 void LinearObjective::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
807  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
808  static_cast<LinearObjective *>(to)->MergeFrom(
809  static_cast<const LinearObjective &>(from));
810 }
811 
812 
814 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearObjective)
815  GOOGLE_DCHECK_NE(&from, this);
816  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
817  (void) cached_has_bits;
818 
819  literals_.MergeFrom(from.literals_);
820  coefficients_.MergeFrom(from.coefficients_);
821  cached_has_bits = from._has_bits_[0];
822  if (cached_has_bits & 0x00000003u) {
823  if (cached_has_bits & 0x00000001u) {
824  offset_ = from.offset_;
825  }
826  if (cached_has_bits & 0x00000002u) {
827  scaling_factor_ = from.scaling_factor_;
828  }
829  _has_bits_[0] |= cached_has_bits;
830  }
831  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
832 }
833 
835 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearObjective)
836  if (&from == this) return;
837  Clear();
838  MergeFrom(from);
839 }
840 
842  return true;
843 }
844 
845 void LinearObjective::InternalSwap(LinearObjective* other) {
846  using std::swap;
847  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
848  swap(_has_bits_[0], other->_has_bits_[0]);
849  literals_.InternalSwap(&other->literals_);
850  coefficients_.InternalSwap(&other->coefficients_);
851  swap(offset_, other->offset_);
852  swap(scaling_factor_, other->scaling_factor_);
853 }
854 
855 ::PROTOBUF_NAMESPACE_ID::Metadata LinearObjective::GetMetadata() const {
856  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
859 }
860 
861 // ===================================================================
862 
864  public:
865 };
866 
867 BooleanAssignment::BooleanAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena,
868  bool is_message_owned)
869  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
870  literals_(arena) {
871  SharedCtor();
872  if (!is_message_owned) {
873  RegisterArenaDtor(arena);
874  }
875  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BooleanAssignment)
876 }
878  : ::PROTOBUF_NAMESPACE_ID::Message(),
879  literals_(from.literals_) {
880  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
881  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BooleanAssignment)
882 }
883 
884 inline void BooleanAssignment::SharedCtor() {
885 }
886 
888  // @@protoc_insertion_point(destructor:operations_research.sat.BooleanAssignment)
889  if (GetArenaForAllocation() != nullptr) return;
890  SharedDtor();
891  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
892 }
893 
894 inline void BooleanAssignment::SharedDtor() {
895  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
896 }
897 
898 void BooleanAssignment::ArenaDtor(void* object) {
899  BooleanAssignment* _this = reinterpret_cast< BooleanAssignment* >(object);
900  (void)_this;
901 }
902 void BooleanAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
903 }
904 void BooleanAssignment::SetCachedSize(int size) const {
905  _cached_size_.Set(size);
906 }
907 
909 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BooleanAssignment)
910  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
911  // Prevent compiler warnings about cached_has_bits being unused
912  (void) cached_has_bits;
913 
914  literals_.Clear();
915  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
916 }
917 
918 const char* BooleanAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
919 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
920  while (!ctx->Done(&ptr)) {
921  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
922  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
923  switch (tag >> 3) {
924  // repeated int32 literals = 1;
925  case 1:
926  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
927  ptr -= 1;
928  do {
929  ptr += 1;
930  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
931  CHK_(ptr);
932  if (!ctx->DataAvailable(ptr)) break;
933  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
934  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10) {
935  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
936  CHK_(ptr);
937  } else goto handle_unusual;
938  continue;
939  default: {
940  handle_unusual:
941  if ((tag == 0) || ((tag & 7) == 4)) {
942  CHK_(ptr);
943  ctx->SetLastTag(tag);
944  goto success;
945  }
946  ptr = UnknownFieldParse(tag,
947  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
948  ptr, ctx);
949  CHK_(ptr != nullptr);
950  continue;
951  }
952  } // switch
953  } // while
954 success:
955  return ptr;
956 failure:
957  ptr = nullptr;
958  goto success;
959 #undef CHK_
960 }
961 
962 ::PROTOBUF_NAMESPACE_ID::uint8* BooleanAssignment::_InternalSerialize(
963  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
964  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BooleanAssignment)
965  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
966  (void) cached_has_bits;
967 
968  // repeated int32 literals = 1;
969  for (int i = 0, n = this->_internal_literals_size(); i < n; i++) {
970  target = stream->EnsureSpace(target);
971  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_literals(i), target);
972  }
973 
974  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
975  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
976  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
977  }
978  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BooleanAssignment)
979  return target;
980 }
981 
983 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BooleanAssignment)
984  size_t total_size = 0;
985 
986  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
987  // Prevent compiler warnings about cached_has_bits being unused
988  (void) cached_has_bits;
989 
990  // repeated int32 literals = 1;
991  {
992  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
993  Int32Size(this->literals_);
994  total_size += 1 *
995  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
996  total_size += data_size;
997  }
998 
999  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1000  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1001  _internal_metadata_, total_size, &_cached_size_);
1002  }
1003  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1004  SetCachedSize(cached_size);
1005  return total_size;
1006 }
1007 
1008 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BooleanAssignment::_class_data_ = {
1009  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1010  BooleanAssignment::MergeImpl
1011 };
1012 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BooleanAssignment::GetClassData() const { return &_class_data_; }
1013 
1014 void BooleanAssignment::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1015  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1016  static_cast<BooleanAssignment *>(to)->MergeFrom(
1017  static_cast<const BooleanAssignment &>(from));
1018 }
1019 
1020 
1022 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BooleanAssignment)
1023  GOOGLE_DCHECK_NE(&from, this);
1024  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1025  (void) cached_has_bits;
1026 
1027  literals_.MergeFrom(from.literals_);
1028  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1029 }
1030 
1032 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BooleanAssignment)
1033  if (&from == this) return;
1034  Clear();
1035  MergeFrom(from);
1036 }
1037 
1039  return true;
1040 }
1041 
1042 void BooleanAssignment::InternalSwap(BooleanAssignment* other) {
1043  using std::swap;
1044  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1045  literals_.InternalSwap(&other->literals_);
1046 }
1047 
1048 ::PROTOBUF_NAMESPACE_ID::Metadata BooleanAssignment::GetMetadata() const {
1049  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1052 }
1053 
1054 // ===================================================================
1055 
1057  public:
1058  using HasBits = decltype(std::declval<LinearBooleanProblem>()._has_bits_);
1059  static void set_has_name(HasBits* has_bits) {
1060  (*has_bits)[0] |= 1u;
1061  }
1062  static void set_has_num_variables(HasBits* has_bits) {
1063  (*has_bits)[0] |= 8u;
1064  }
1065  static const ::operations_research::sat::LinearObjective& objective(const LinearBooleanProblem* msg);
1066  static void set_has_objective(HasBits* has_bits) {
1067  (*has_bits)[0] |= 2u;
1068  }
1069  static const ::operations_research::sat::BooleanAssignment& assignment(const LinearBooleanProblem* msg);
1070  static void set_has_assignment(HasBits* has_bits) {
1071  (*has_bits)[0] |= 4u;
1072  }
1073  static void set_has_original_num_variables(HasBits* has_bits) {
1074  (*has_bits)[0] |= 16u;
1075  }
1076 };
1077 
1078 const ::operations_research::sat::LinearObjective&
1080  return *msg->objective_;
1081 }
1082 const ::operations_research::sat::BooleanAssignment&
1084  return *msg->assignment_;
1085 }
1086 LinearBooleanProblem::LinearBooleanProblem(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1087  bool is_message_owned)
1088  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1089  constraints_(arena),
1090  var_names_(arena) {
1091  SharedCtor();
1092  if (!is_message_owned) {
1093  RegisterArenaDtor(arena);
1094  }
1095  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearBooleanProblem)
1096 }
1098  : ::PROTOBUF_NAMESPACE_ID::Message(),
1099  _has_bits_(from._has_bits_),
1100  constraints_(from.constraints_),
1101  var_names_(from.var_names_) {
1102  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1103  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1104  if (from._internal_has_name()) {
1105  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1106  GetArenaForAllocation());
1107  }
1108  if (from._internal_has_objective()) {
1109  objective_ = new ::operations_research::sat::LinearObjective(*from.objective_);
1110  } else {
1111  objective_ = nullptr;
1112  }
1113  if (from._internal_has_assignment()) {
1114  assignment_ = new ::operations_research::sat::BooleanAssignment(*from.assignment_);
1115  } else {
1116  assignment_ = nullptr;
1117  }
1118  ::memcpy(&num_variables_, &from.num_variables_,
1119  static_cast<size_t>(reinterpret_cast<char*>(&original_num_variables_) -
1120  reinterpret_cast<char*>(&num_variables_)) + sizeof(original_num_variables_));
1121  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearBooleanProblem)
1122 }
1123 
1124 inline void LinearBooleanProblem::SharedCtor() {
1125 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1126 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1127  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
1128  0, static_cast<size_t>(reinterpret_cast<char*>(&original_num_variables_) -
1129  reinterpret_cast<char*>(&objective_)) + sizeof(original_num_variables_));
1130 }
1131 
1133  // @@protoc_insertion_point(destructor:operations_research.sat.LinearBooleanProblem)
1134  if (GetArenaForAllocation() != nullptr) return;
1135  SharedDtor();
1136  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1137 }
1138 
1139 inline void LinearBooleanProblem::SharedDtor() {
1140  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1141  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1142  if (this != internal_default_instance()) delete objective_;
1143  if (this != internal_default_instance()) delete assignment_;
1144 }
1145 
1146 void LinearBooleanProblem::ArenaDtor(void* object) {
1147  LinearBooleanProblem* _this = reinterpret_cast< LinearBooleanProblem* >(object);
1148  (void)_this;
1149 }
1150 void LinearBooleanProblem::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1151 }
1152 void LinearBooleanProblem::SetCachedSize(int size) const {
1153  _cached_size_.Set(size);
1154 }
1155 
1157 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearBooleanProblem)
1158  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1159  // Prevent compiler warnings about cached_has_bits being unused
1160  (void) cached_has_bits;
1161 
1162  constraints_.Clear();
1163  var_names_.Clear();
1164  cached_has_bits = _has_bits_[0];
1165  if (cached_has_bits & 0x00000007u) {
1166  if (cached_has_bits & 0x00000001u) {
1167  name_.ClearNonDefaultToEmpty();
1168  }
1169  if (cached_has_bits & 0x00000002u) {
1170  GOOGLE_DCHECK(objective_ != nullptr);
1171  objective_->Clear();
1172  }
1173  if (cached_has_bits & 0x00000004u) {
1174  GOOGLE_DCHECK(assignment_ != nullptr);
1175  assignment_->Clear();
1176  }
1177  }
1178  if (cached_has_bits & 0x00000018u) {
1179  ::memset(&num_variables_, 0, static_cast<size_t>(
1180  reinterpret_cast<char*>(&original_num_variables_) -
1181  reinterpret_cast<char*>(&num_variables_)) + sizeof(original_num_variables_));
1182  }
1183  _has_bits_.Clear();
1184  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1185 }
1186 
1187 const char* LinearBooleanProblem::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1188 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1189  _Internal::HasBits has_bits{};
1190  while (!ctx->Done(&ptr)) {
1191  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1192  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1193  switch (tag >> 3) {
1194  // optional string name = 1 [default = ""];
1195  case 1:
1196  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1197  auto str = _internal_mutable_name();
1198  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1199  #ifndef NDEBUG
1200  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.LinearBooleanProblem.name");
1201  #endif // !NDEBUG
1202  CHK_(ptr);
1203  } else goto handle_unusual;
1204  continue;
1205  // optional int32 num_variables = 3;
1206  case 3:
1207  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1209  num_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1210  CHK_(ptr);
1211  } else goto handle_unusual;
1212  continue;
1213  // repeated .operations_research.sat.LinearBooleanConstraint constraints = 4;
1214  case 4:
1215  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
1216  ptr -= 1;
1217  do {
1218  ptr += 1;
1219  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
1220  CHK_(ptr);
1221  if (!ctx->DataAvailable(ptr)) break;
1222  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
1223  } else goto handle_unusual;
1224  continue;
1225  // optional .operations_research.sat.LinearObjective objective = 5;
1226  case 5:
1227  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
1228  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
1229  CHK_(ptr);
1230  } else goto handle_unusual;
1231  continue;
1232  // repeated string var_names = 6;
1233  case 6:
1234  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
1235  ptr -= 1;
1236  do {
1237  ptr += 1;
1238  auto str = _internal_add_var_names();
1239  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1240  #ifndef NDEBUG
1241  ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.LinearBooleanProblem.var_names");
1242  #endif // !NDEBUG
1243  CHK_(ptr);
1244  if (!ctx->DataAvailable(ptr)) break;
1245  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
1246  } else goto handle_unusual;
1247  continue;
1248  // optional .operations_research.sat.BooleanAssignment assignment = 7;
1249  case 7:
1250  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
1251  ptr = ctx->ParseMessage(_internal_mutable_assignment(), ptr);
1252  CHK_(ptr);
1253  } else goto handle_unusual;
1254  continue;
1255  // optional int32 original_num_variables = 8;
1256  case 8:
1257  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
1259  original_num_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1260  CHK_(ptr);
1261  } else goto handle_unusual;
1262  continue;
1263  default: {
1264  handle_unusual:
1265  if ((tag == 0) || ((tag & 7) == 4)) {
1266  CHK_(ptr);
1267  ctx->SetLastTag(tag);
1268  goto success;
1269  }
1270  ptr = UnknownFieldParse(tag,
1271  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1272  ptr, ctx);
1273  CHK_(ptr != nullptr);
1274  continue;
1275  }
1276  } // switch
1277  } // while
1278 success:
1279  _has_bits_.Or(has_bits);
1280  return ptr;
1281 failure:
1282  ptr = nullptr;
1283  goto success;
1284 #undef CHK_
1285 }
1286 
1287 ::PROTOBUF_NAMESPACE_ID::uint8* LinearBooleanProblem::_InternalSerialize(
1288  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1289  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearBooleanProblem)
1290  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1291  (void) cached_has_bits;
1292 
1293  cached_has_bits = _has_bits_[0];
1294  // optional string name = 1 [default = ""];
1295  if (cached_has_bits & 0x00000001u) {
1296  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
1297  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1298  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
1299  "operations_research.sat.LinearBooleanProblem.name");
1300  target = stream->WriteStringMaybeAliased(
1301  1, this->_internal_name(), target);
1302  }
1303 
1304  // optional int32 num_variables = 3;
1305  if (cached_has_bits & 0x00000008u) {
1306  target = stream->EnsureSpace(target);
1307  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_num_variables(), target);
1308  }
1309 
1310  // repeated .operations_research.sat.LinearBooleanConstraint constraints = 4;
1311  for (unsigned int i = 0,
1312  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
1313  target = stream->EnsureSpace(target);
1314  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1315  InternalWriteMessage(4, this->_internal_constraints(i), target, stream);
1316  }
1317 
1318  // optional .operations_research.sat.LinearObjective objective = 5;
1319  if (cached_has_bits & 0x00000002u) {
1320  target = stream->EnsureSpace(target);
1321  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1322  InternalWriteMessage(
1323  5, _Internal::objective(this), target, stream);
1324  }
1325 
1326  // repeated string var_names = 6;
1327  for (int i = 0, n = this->_internal_var_names_size(); i < n; i++) {
1328  const auto& s = this->_internal_var_names(i);
1329  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
1330  s.data(), static_cast<int>(s.length()),
1331  ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
1332  "operations_research.sat.LinearBooleanProblem.var_names");
1333  target = stream->WriteString(6, s, target);
1334  }
1335 
1336  // optional .operations_research.sat.BooleanAssignment assignment = 7;
1337  if (cached_has_bits & 0x00000004u) {
1338  target = stream->EnsureSpace(target);
1339  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1340  InternalWriteMessage(
1341  7, _Internal::assignment(this), target, stream);
1342  }
1343 
1344  // optional int32 original_num_variables = 8;
1345  if (cached_has_bits & 0x00000010u) {
1346  target = stream->EnsureSpace(target);
1347  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_original_num_variables(), target);
1348  }
1349 
1350  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1351  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1352  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1353  }
1354  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearBooleanProblem)
1355  return target;
1356 }
1357 
1359 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearBooleanProblem)
1360  size_t total_size = 0;
1361 
1362  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1363  // Prevent compiler warnings about cached_has_bits being unused
1364  (void) cached_has_bits;
1365 
1366  // repeated .operations_research.sat.LinearBooleanConstraint constraints = 4;
1367  total_size += 1UL * this->_internal_constraints_size();
1368  for (const auto& msg : this->constraints_) {
1369  total_size +=
1370  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1371  }
1372 
1373  // repeated string var_names = 6;
1374  total_size += 1 *
1375  ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(var_names_.size());
1376  for (int i = 0, n = var_names_.size(); i < n; i++) {
1377  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1378  var_names_.Get(i));
1379  }
1380 
1381  cached_has_bits = _has_bits_[0];
1382  if (cached_has_bits & 0x0000001fu) {
1383  // optional string name = 1 [default = ""];
1384  if (cached_has_bits & 0x00000001u) {
1385  total_size += 1 +
1386  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1387  this->_internal_name());
1388  }
1389 
1390  // optional .operations_research.sat.LinearObjective objective = 5;
1391  if (cached_has_bits & 0x00000002u) {
1392  total_size += 1 +
1393  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1394  *objective_);
1395  }
1396 
1397  // optional .operations_research.sat.BooleanAssignment assignment = 7;
1398  if (cached_has_bits & 0x00000004u) {
1399  total_size += 1 +
1400  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1401  *assignment_);
1402  }
1403 
1404  // optional int32 num_variables = 3;
1405  if (cached_has_bits & 0x00000008u) {
1406  total_size += 1 +
1407  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1408  this->_internal_num_variables());
1409  }
1410 
1411  // optional int32 original_num_variables = 8;
1412  if (cached_has_bits & 0x00000010u) {
1413  total_size += 1 +
1414  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1415  this->_internal_original_num_variables());
1416  }
1417 
1418  }
1419  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1420  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1421  _internal_metadata_, total_size, &_cached_size_);
1422  }
1423  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1424  SetCachedSize(cached_size);
1425  return total_size;
1426 }
1427 
1428 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearBooleanProblem::_class_data_ = {
1429  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1430  LinearBooleanProblem::MergeImpl
1431 };
1432 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearBooleanProblem::GetClassData() const { return &_class_data_; }
1433 
1434 void LinearBooleanProblem::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1435  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1436  static_cast<LinearBooleanProblem *>(to)->MergeFrom(
1437  static_cast<const LinearBooleanProblem &>(from));
1438 }
1439 
1440 
1442 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearBooleanProblem)
1443  GOOGLE_DCHECK_NE(&from, this);
1444  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1445  (void) cached_has_bits;
1446 
1447  constraints_.MergeFrom(from.constraints_);
1448  var_names_.MergeFrom(from.var_names_);
1449  cached_has_bits = from._has_bits_[0];
1450  if (cached_has_bits & 0x0000001fu) {
1451  if (cached_has_bits & 0x00000001u) {
1452  _internal_set_name(from._internal_name());
1453  }
1454  if (cached_has_bits & 0x00000002u) {
1455  _internal_mutable_objective()->::operations_research::sat::LinearObjective::MergeFrom(from._internal_objective());
1456  }
1457  if (cached_has_bits & 0x00000004u) {
1458  _internal_mutable_assignment()->::operations_research::sat::BooleanAssignment::MergeFrom(from._internal_assignment());
1459  }
1460  if (cached_has_bits & 0x00000008u) {
1461  num_variables_ = from.num_variables_;
1462  }
1463  if (cached_has_bits & 0x00000010u) {
1464  original_num_variables_ = from.original_num_variables_;
1465  }
1466  _has_bits_[0] |= cached_has_bits;
1467  }
1468  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1469 }
1470 
1472 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearBooleanProblem)
1473  if (&from == this) return;
1474  Clear();
1475  MergeFrom(from);
1476 }
1477 
1479  return true;
1480 }
1481 
1482 void LinearBooleanProblem::InternalSwap(LinearBooleanProblem* other) {
1483  using std::swap;
1484  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1485  swap(_has_bits_[0], other->_has_bits_[0]);
1486  constraints_.InternalSwap(&other->constraints_);
1487  var_names_.InternalSwap(&other->var_names_);
1488  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
1489  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
1490  &name_, GetArenaForAllocation(),
1491  &other->name_, other->GetArenaForAllocation()
1492  );
1493  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1494  PROTOBUF_FIELD_OFFSET(LinearBooleanProblem, original_num_variables_)
1495  + sizeof(LinearBooleanProblem::original_num_variables_)
1496  - PROTOBUF_FIELD_OFFSET(LinearBooleanProblem, objective_)>(
1497  reinterpret_cast<char*>(&objective_),
1498  reinterpret_cast<char*>(&other->objective_));
1499 }
1500 
1501 ::PROTOBUF_NAMESPACE_ID::Metadata LinearBooleanProblem::GetMetadata() const {
1502  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1505 }
1506 
1507 // @@protoc_insertion_point(namespace_scope)
1508 } // namespace sat
1509 } // namespace operations_research
1510 PROTOBUF_NAMESPACE_OPEN
1511 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanConstraint* Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanConstraint >(Arena* arena) {
1512  return Arena::CreateMessageInternal< ::operations_research::sat::LinearBooleanConstraint >(arena);
1513 }
1514 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearObjective* Arena::CreateMaybeMessage< ::operations_research::sat::LinearObjective >(Arena* arena) {
1515  return Arena::CreateMessageInternal< ::operations_research::sat::LinearObjective >(arena);
1516 }
1517 template<> PROTOBUF_NOINLINE ::operations_research::sat::BooleanAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::BooleanAssignment >(Arena* arena) {
1518  return Arena::CreateMessageInternal< ::operations_research::sat::BooleanAssignment >(arena);
1519 }
1520 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanProblem* Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanProblem >(Arena* arena) {
1521  return Arena::CreateMessageInternal< ::operations_research::sat::LinearBooleanProblem >(arena);
1522 }
1523 PROTOBUF_NAMESPACE_CLOSE
1524 
1525 // @@protoc_insertion_point(global_scope)
1526 #include <google/protobuf/port_undef.inc>
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanConstraint * Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanConstraint >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fboolean_5fproblem_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanProblem * Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanProblem >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearBooleanConstraintDefaultTypeInternal _LinearBooleanConstraint_default_instance_
friend void swap(LinearBooleanConstraint &a, LinearBooleanConstraint &b)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fboolean_5fproblem_2eproto[4]
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:263
friend void swap(LinearObjective &a, LinearObjective &b)
void MergeFrom(const BooleanAssignment &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto
void MergeFrom(const LinearObjective &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
#define CHK_(x)
void CopyFrom(const LinearObjective &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_NOINLINE ::operations_research::sat::LinearObjective * Arena::CreateMaybeMessage< ::operations_research::sat::LinearObjective >(Arena *arena)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearBooleanProblemDefaultTypeInternal _LinearBooleanProblem_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BooleanAssignmentDefaultTypeInternal _BooleanAssignment_default_instance_
IntVar *const objective_
Definition: search.cc:2966
static const ::operations_research::sat::BooleanAssignment & assignment(const LinearBooleanProblem *msg)
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_once
void MergeFrom(const LinearBooleanConstraint &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_NOINLINE ::operations_research::sat::BooleanAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::BooleanAssignment >(Arena *arena)
decltype(std::declval< LinearObjective >()._has_bits_) HasBits
friend void swap(LinearBooleanProblem &a, LinearBooleanProblem &b)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
decltype(std::declval< LinearBooleanConstraint >()._has_bits_) HasBits
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const LinearBooleanProblem &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const ** file_level_enum_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto
static const LinearBooleanProblem * internal_default_instance()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
Collection of objects used to extend the Constraint Solver library.
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void MergeFrom(const LinearBooleanProblem &from)
const int64_t offset_
Definition: interval.cc:2108
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void CopyFrom(const LinearBooleanConstraint &from)
decltype(std::declval< LinearBooleanProblem >()._has_bits_) HasBits
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearObjectiveDefaultTypeInternal _LinearObjective_default_instance_
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_getter()
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
static const ::operations_research::sat::LinearObjective & objective(const LinearBooleanProblem *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const BooleanAssignment &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto