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