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