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>
16 #include <google/protobuf/port_def.inc>
24 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearBooleanConstraint>
_instance;
28 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearObjective>
_instance;
32 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BooleanAssignment>
_instance;
36 ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearBooleanProblem>
_instance;
41 GOOGLE_PROTOBUF_VERIFY_VERSION;
46 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
48 ::operations_research::sat::BooleanAssignment::InitAsDefaultInstance();
55 GOOGLE_PROTOBUF_VERIFY_VERSION;
60 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
62 ::operations_research::sat::LinearBooleanConstraint::InitAsDefaultInstance();
69 GOOGLE_PROTOBUF_VERIFY_VERSION;
74 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
76 ::operations_research::sat::LinearBooleanProblem::InitAsDefaultInstance();
86 GOOGLE_PROTOBUF_VERIFY_VERSION;
91 ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
93 ::operations_research::sat::LinearObjective::InitAsDefaultInstance();
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)},
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"
202 false,
false, descriptor_table_protodef_ortools_2fsat_2fboolean_5fproblem_2eproto,
"ortools/sat/boolean_problem.proto", 689,
215 void LinearBooleanConstraint::InitAsDefaultInstance() {
219 using HasBits = decltype(std::declval<LinearBooleanConstraint>()._has_bits_);
221 (*has_bits)[0] |= 2u;
224 (*has_bits)[0] |= 4u;
227 (*has_bits)[0] |= 1u;
231 LinearBooleanConstraint::LinearBooleanConstraint(::PROTOBUF_NAMESPACE_ID::Arena* arena)
232 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
234 coefficients_(arena) {
236 RegisterArenaDtor(arena);
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(),
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_));
256 void LinearBooleanConstraint::SharedCtor() {
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_));
264 LinearBooleanConstraint::~LinearBooleanConstraint() {
267 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
270 void LinearBooleanConstraint::SharedDtor() {
271 GOOGLE_DCHECK(GetArena() ==
nullptr);
272 name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
275 void LinearBooleanConstraint::ArenaDtor(
void*
object) {
276 LinearBooleanConstraint* _this =
reinterpret_cast< LinearBooleanConstraint*
>(object);
279 void LinearBooleanConstraint::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
281 void LinearBooleanConstraint::SetCachedSize(
int size)
const {
282 _cached_size_.Set(size);
284 const LinearBooleanConstraint& LinearBooleanConstraint::default_instance() {
286 return *internal_default_instance();
290 void LinearBooleanConstraint::Clear() {
294 (void) cached_has_bits;
297 coefficients_.Clear();
298 cached_has_bits = _has_bits_[0];
299 if (cached_has_bits & 0x00000001u) {
300 name_.ClearNonDefaultToEmpty();
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_));
308 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
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
314 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
315 while (!ctx->Done(&ptr)) {
317 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
326 _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
328 if (!ctx->DataAvailable(ptr))
break;
329 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
331 ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
333 }
else goto handle_unusual;
341 _internal_add_coefficients(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
343 if (!ctx->DataAvailable(ptr))
break;
344 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<16>(ptr));
346 ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coefficients(), ptr, ctx);
348 }
else goto handle_unusual;
354 lower_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
356 }
else goto handle_unusual;
362 upper_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
364 }
else goto handle_unusual;
369 auto str = _internal_mutable_name();
370 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
372 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.sat.LinearBooleanConstraint.name");
375 }
else goto handle_unusual;
379 if ((tag & 7) == 4 || tag == 0) {
380 ctx->SetLastTag(tag);
383 ptr = UnknownFieldParse(tag,
384 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
386 CHK_(ptr !=
nullptr);
392 _has_bits_.Or(has_bits);
404 (void) cached_has_bits;
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);
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);
418 cached_has_bits = _has_bits_[0];
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);
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);
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);
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);
449 size_t LinearBooleanConstraint::ByteSizeLong()
const {
451 size_t total_size = 0;
455 (void) cached_has_bits;
459 size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
460 Int32Size(this->literals_);
462 ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
463 total_size += data_size;
468 size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
469 Int64Size(this->coefficients_);
471 ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_coefficients_size());
472 total_size += data_size;
475 cached_has_bits = _has_bits_[0];
476 if (cached_has_bits & 0x00000007u) {
478 if (cached_has_bits & 0x00000001u) {
480 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
481 this->_internal_name());
485 if (cached_has_bits & 0x00000002u) {
487 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
488 this->_internal_lower_bound());
492 if (cached_has_bits & 0x00000004u) {
494 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
495 this->_internal_upper_bound());
499 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
500 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
501 _internal_metadata_, total_size, &_cached_size_);
503 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
504 SetCachedSize(cached_size);
508 void LinearBooleanConstraint::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
510 GOOGLE_DCHECK_NE(&from,
this);
511 const LinearBooleanConstraint* source =
512 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearBooleanConstraint>(
514 if (source ==
nullptr) {
516 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
523 void LinearBooleanConstraint::MergeFrom(
const LinearBooleanConstraint& from) {
525 GOOGLE_DCHECK_NE(&from,
this);
526 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
528 (void) cached_has_bits;
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());
537 if (cached_has_bits & 0x00000002u) {
538 lower_bound_ = from.lower_bound_;
540 if (cached_has_bits & 0x00000004u) {
541 upper_bound_ = from.upper_bound_;
543 _has_bits_[0] |= cached_has_bits;
547 void LinearBooleanConstraint::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
549 if (&from ==
this)
return;
554 void LinearBooleanConstraint::CopyFrom(
const LinearBooleanConstraint& from) {
556 if (&from ==
this)
return;
561 bool LinearBooleanConstraint::IsInitialized()
const {
565 void LinearBooleanConstraint::InternalSwap(LinearBooleanConstraint* other) {
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_));
580 ::PROTOBUF_NAMESPACE_ID::Metadata LinearBooleanConstraint::GetMetadata()
const {
581 return GetMetadataStatic();
587 void LinearObjective::InitAsDefaultInstance() {
591 using HasBits = decltype(std::declval<LinearObjective>()._has_bits_);
593 (*has_bits)[0] |= 1u;
596 (*has_bits)[0] |= 2u;
600 LinearObjective::LinearObjective(::PROTOBUF_NAMESPACE_ID::Arena* arena)
601 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
603 coefficients_(arena) {
605 RegisterArenaDtor(arena);
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_));
620 void LinearObjective::SharedCtor() {
625 LinearObjective::~LinearObjective() {
628 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
631 void LinearObjective::SharedDtor() {
632 GOOGLE_DCHECK(GetArena() ==
nullptr);
635 void LinearObjective::ArenaDtor(
void*
object) {
636 LinearObjective* _this =
reinterpret_cast< LinearObjective*
>(object);
639 void LinearObjective::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
641 void LinearObjective::SetCachedSize(
int size)
const {
642 _cached_size_.Set(size);
644 const LinearObjective& LinearObjective::default_instance() {
646 return *internal_default_instance();
650 void LinearObjective::Clear() {
654 (void) cached_has_bits;
657 coefficients_.Clear();
658 cached_has_bits = _has_bits_[0];
659 if (cached_has_bits & 0x00000003u) {
664 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
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
670 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
671 while (!ctx->Done(&ptr)) {
673 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
682 _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
684 if (!ctx->DataAvailable(ptr))
break;
685 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
687 ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
689 }
else goto handle_unusual;
697 _internal_add_coefficients(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
699 if (!ctx->DataAvailable(ptr))
break;
700 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<16>(ptr));
702 ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coefficients(), ptr, ctx);
704 }
else goto handle_unusual;
710 offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
711 ptr +=
sizeof(double);
712 }
else goto handle_unusual;
718 scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
719 ptr +=
sizeof(double);
720 }
else goto handle_unusual;
724 if ((tag & 7) == 4 || tag == 0) {
725 ctx->SetLastTag(tag);
728 ptr = UnknownFieldParse(tag,
729 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
731 CHK_(ptr !=
nullptr);
737 _has_bits_.Or(has_bits);
749 (void) cached_has_bits;
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);
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);
763 cached_has_bits = _has_bits_[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);
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);
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);
784 size_t LinearObjective::ByteSizeLong()
const {
786 size_t total_size = 0;
790 (void) cached_has_bits;
794 size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
795 Int32Size(this->literals_);
797 ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
798 total_size += data_size;
803 size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
804 Int64Size(this->coefficients_);
806 ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_coefficients_size());
807 total_size += data_size;
810 cached_has_bits = _has_bits_[0];
811 if (cached_has_bits & 0x00000003u) {
813 if (cached_has_bits & 0x00000001u) {
818 if (cached_has_bits & 0x00000002u) {
823 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
824 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
825 _internal_metadata_, total_size, &_cached_size_);
827 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
828 SetCachedSize(cached_size);
832 void LinearObjective::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
834 GOOGLE_DCHECK_NE(&from,
this);
835 const LinearObjective* source =
836 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearObjective>(
838 if (source ==
nullptr) {
840 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
847 void LinearObjective::MergeFrom(
const LinearObjective& from) {
849 GOOGLE_DCHECK_NE(&from,
this);
850 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
852 (void) cached_has_bits;
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) {
861 if (cached_has_bits & 0x00000002u) {
862 scaling_factor_ = from.scaling_factor_;
864 _has_bits_[0] |= cached_has_bits;
868 void LinearObjective::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
870 if (&from ==
this)
return;
875 void LinearObjective::CopyFrom(
const LinearObjective& from) {
877 if (&from ==
this)
return;
882 bool LinearObjective::IsInitialized()
const {
886 void LinearObjective::InternalSwap(LinearObjective* other) {
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_);
893 swap(scaling_factor_, other->scaling_factor_);
896 ::PROTOBUF_NAMESPACE_ID::Metadata LinearObjective::GetMetadata()
const {
897 return GetMetadataStatic();
903 void BooleanAssignment::InitAsDefaultInstance() {
909 BooleanAssignment::BooleanAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena)
910 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
913 RegisterArenaDtor(arena);
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_);
923 void BooleanAssignment::SharedCtor() {
926 BooleanAssignment::~BooleanAssignment() {
929 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
932 void BooleanAssignment::SharedDtor() {
933 GOOGLE_DCHECK(GetArena() ==
nullptr);
936 void BooleanAssignment::ArenaDtor(
void*
object) {
937 BooleanAssignment* _this =
reinterpret_cast< BooleanAssignment*
>(object);
940 void BooleanAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
942 void BooleanAssignment::SetCachedSize(
int size)
const {
943 _cached_size_.Set(size);
945 const BooleanAssignment& BooleanAssignment::default_instance() {
947 return *internal_default_instance();
951 void BooleanAssignment::Clear() {
955 (void) cached_has_bits;
958 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
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);
975 _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
977 if (!ctx->DataAvailable(ptr))
break;
978 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<8>(ptr));
980 ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
982 }
else goto handle_unusual;
986 if ((tag & 7) == 4 || tag == 0) {
987 ctx->SetLastTag(tag);
990 ptr = UnknownFieldParse(tag,
991 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
993 CHK_(ptr !=
nullptr);
1010 (void) cached_has_bits;
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);
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);
1026 size_t BooleanAssignment::ByteSizeLong()
const {
1028 size_t total_size = 0;
1032 (void) cached_has_bits;
1036 size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1037 Int32Size(this->literals_);
1039 ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_literals_size());
1040 total_size += data_size;
1043 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1044 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1045 _internal_metadata_, total_size, &_cached_size_);
1047 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1048 SetCachedSize(cached_size);
1052 void BooleanAssignment::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1054 GOOGLE_DCHECK_NE(&from,
this);
1055 const BooleanAssignment* source =
1056 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BooleanAssignment>(
1058 if (source ==
nullptr) {
1060 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1067 void BooleanAssignment::MergeFrom(
const BooleanAssignment& from) {
1069 GOOGLE_DCHECK_NE(&from,
this);
1070 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1072 (void) cached_has_bits;
1074 literals_.MergeFrom(from.literals_);
1077 void BooleanAssignment::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1079 if (&from ==
this)
return;
1084 void BooleanAssignment::CopyFrom(
const BooleanAssignment& from) {
1086 if (&from ==
this)
return;
1091 bool BooleanAssignment::IsInitialized()
const {
1095 void BooleanAssignment::InternalSwap(BooleanAssignment* other) {
1097 _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1098 literals_.InternalSwap(&other->literals_);
1101 ::PROTOBUF_NAMESPACE_ID::Metadata BooleanAssignment::GetMetadata()
const {
1102 return GetMetadataStatic();
1108 void LinearBooleanProblem::InitAsDefaultInstance() {
1110 ::operations_research::sat::LinearObjective::internal_default_instance());
1112 ::operations_research::sat::BooleanAssignment::internal_default_instance());
1116 using HasBits = decltype(std::declval<LinearBooleanProblem>()._has_bits_);
1118 (*has_bits)[0] |= 1u;
1121 (*has_bits)[0] |= 8u;
1123 static const ::operations_research::sat::LinearObjective& objective(
const LinearBooleanProblem* msg);
1125 (*has_bits)[0] |= 2u;
1127 static const ::operations_research::sat::BooleanAssignment& assignment(
const LinearBooleanProblem* msg);
1129 (*has_bits)[0] |= 4u;
1132 (*has_bits)[0] |= 16u;
1136 const ::operations_research::sat::LinearObjective&
1138 return *msg->objective_;
1140 const ::operations_research::sat::BooleanAssignment&
1142 return *msg->assignment_;
1144 LinearBooleanProblem::LinearBooleanProblem(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1145 : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1146 constraints_(arena),
1149 RegisterArenaDtor(arena);
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(),
1163 if (from._internal_has_objective()) {
1164 objective_ = new ::operations_research::sat::LinearObjective(*from.objective_);
1168 if (from._internal_has_assignment()) {
1169 assignment_ = new ::operations_research::sat::BooleanAssignment(*from.assignment_);
1171 assignment_ =
nullptr;
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_));
1179 void LinearBooleanProblem::SharedCtor() {
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_));
1187 LinearBooleanProblem::~LinearBooleanProblem() {
1190 _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
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_;
1200 void LinearBooleanProblem::ArenaDtor(
void*
object) {
1201 LinearBooleanProblem* _this =
reinterpret_cast< LinearBooleanProblem*
>(object);
1204 void LinearBooleanProblem::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1206 void LinearBooleanProblem::SetCachedSize(
int size)
const {
1207 _cached_size_.Set(size);
1209 const LinearBooleanProblem& LinearBooleanProblem::default_instance() {
1211 return *internal_default_instance();
1215 void LinearBooleanProblem::Clear() {
1219 (void) cached_has_bits;
1221 constraints_.Clear();
1223 cached_has_bits = _has_bits_[0];
1224 if (cached_has_bits & 0x00000007u) {
1225 if (cached_has_bits & 0x00000001u) {
1226 name_.ClearNonDefaultToEmpty();
1228 if (cached_has_bits & 0x00000002u) {
1232 if (cached_has_bits & 0x00000004u) {
1233 GOOGLE_DCHECK(assignment_ !=
nullptr);
1234 assignment_->Clear();
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_));
1243 _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
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
1249 ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
1250 while (!ctx->Done(&ptr)) {
1252 ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1258 auto str = _internal_mutable_name();
1259 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1261 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.sat.LinearBooleanProblem.name");
1264 }
else goto handle_unusual;
1270 num_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1272 }
else goto handle_unusual;
1280 ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
1282 if (!ctx->DataAvailable(ptr))
break;
1283 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
1284 }
else goto handle_unusual;
1289 ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
1291 }
else goto handle_unusual;
1299 auto str = _internal_add_var_names();
1300 ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1302 ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str,
"operations_research.sat.LinearBooleanProblem.var_names");
1305 if (!ctx->DataAvailable(ptr))
break;
1306 }
while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
1307 }
else goto handle_unusual;
1312 ptr = ctx->ParseMessage(_internal_mutable_assignment(), ptr);
1314 }
else goto handle_unusual;
1320 original_num_variables_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1322 }
else goto handle_unusual;
1326 if ((tag & 7) == 4 || tag == 0) {
1327 ctx->SetLastTag(tag);
1330 ptr = UnknownFieldParse(tag,
1331 _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1333 CHK_(ptr !=
nullptr);
1339 _has_bits_.Or(has_bits);
1351 (void) cached_has_bits;
1353 cached_has_bits = _has_bits_[0];
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);
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);
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);
1379 if (cached_has_bits & 0x00000002u) {
1380 target = stream->EnsureSpace(target);
1381 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1382 InternalWriteMessage(
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);
1397 if (cached_has_bits & 0x00000004u) {
1398 target = stream->EnsureSpace(target);
1399 target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1400 InternalWriteMessage(
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);
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);
1418 size_t LinearBooleanProblem::ByteSizeLong()
const {
1420 size_t total_size = 0;
1424 (void) cached_has_bits;
1427 total_size += 1UL * this->_internal_constraints_size();
1428 for (
const auto& msg : this->constraints_) {
1430 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
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(
1441 cached_has_bits = _has_bits_[0];
1442 if (cached_has_bits & 0x0000001fu) {
1444 if (cached_has_bits & 0x00000001u) {
1446 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1447 this->_internal_name());
1451 if (cached_has_bits & 0x00000002u) {
1453 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1458 if (cached_has_bits & 0x00000004u) {
1460 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1465 if (cached_has_bits & 0x00000008u) {
1467 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1468 this->_internal_num_variables());
1472 if (cached_has_bits & 0x00000010u) {
1474 ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1475 this->_internal_original_num_variables());
1479 if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1480 return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1481 _internal_metadata_, total_size, &_cached_size_);
1483 int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1484 SetCachedSize(cached_size);
1488 void LinearBooleanProblem::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1490 GOOGLE_DCHECK_NE(&from,
this);
1491 const LinearBooleanProblem* source =
1492 ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearBooleanProblem>(
1494 if (source ==
nullptr) {
1496 ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from,
this);
1503 void LinearBooleanProblem::MergeFrom(
const LinearBooleanProblem& from) {
1505 GOOGLE_DCHECK_NE(&from,
this);
1506 _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1508 (void) cached_has_bits;
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());
1517 if (cached_has_bits & 0x00000002u) {
1518 _internal_mutable_objective()->::operations_research::sat::LinearObjective::MergeFrom(from._internal_objective());
1520 if (cached_has_bits & 0x00000004u) {
1521 _internal_mutable_assignment()->::operations_research::sat::BooleanAssignment::MergeFrom(from._internal_assignment());
1523 if (cached_has_bits & 0x00000008u) {
1524 num_variables_ = from.num_variables_;
1526 if (cached_has_bits & 0x00000010u) {
1527 original_num_variables_ = from.original_num_variables_;
1529 _has_bits_[0] |= cached_has_bits;
1533 void LinearBooleanProblem::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1535 if (&from ==
this)
return;
1540 void LinearBooleanProblem::CopyFrom(
const LinearBooleanProblem& from) {
1542 if (&from ==
this)
return;
1547 bool LinearBooleanProblem::IsInitialized()
const {
1551 void LinearBooleanProblem::InternalSwap(LinearBooleanProblem* other) {
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_)>(
1563 reinterpret_cast<char*
>(&other->objective_));
1566 ::PROTOBUF_NAMESPACE_ID::Metadata LinearBooleanProblem::GetMetadata()
const {
1567 return GetMetadataStatic();
1574 PROTOBUF_NAMESPACE_OPEN
1576 return Arena::CreateMessageInternal< ::operations_research::sat::LinearBooleanConstraint >(arena);
1579 return Arena::CreateMessageInternal< ::operations_research::sat::LinearObjective >(arena);
1582 return Arena::CreateMessageInternal< ::operations_research::sat::BooleanAssignment >(arena);
1585 return Arena::CreateMessageInternal< ::operations_research::sat::LinearBooleanProblem >(arena);
1587 PROTOBUF_NAMESPACE_CLOSE
1590 #include <google/protobuf/port_undef.inc>