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