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