Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
solvers.pb.cc
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// NO CHECKED-IN PROTOBUF GENCODE
3// source: ortools/pdlp/solvers.proto
4// Protobuf C++ Version: 6.33.1
5
7
8#include <algorithm>
9#include <type_traits>
10#include "google/protobuf/io/coded_stream.h"
11#include "google/protobuf/generated_message_tctable_impl.h"
12#include "google/protobuf/extension_set.h"
13#include "google/protobuf/generated_message_util.h"
14#include "google/protobuf/wire_format_lite.h"
15#include "google/protobuf/descriptor.h"
16#include "google/protobuf/generated_message_reflection.h"
17#include "google/protobuf/reflection_ops.h"
18#include "google/protobuf/wire_format.h"
19// @@protoc_insertion_point(includes)
20
21// Must be included last.
22#include "google/protobuf/port_def.inc"
23PROTOBUF_PRAGMA_INIT_SEG
24namespace _pb = ::google::protobuf;
26namespace _fl = ::google::protobuf::internal::field_layout;
27namespace operations_research {
28namespace pdlp {
29
30inline constexpr TerminationCriteria_SimpleOptimalityCriteria::Impl_::Impl_(
31 ::_pbi::ConstantInitialized) noexcept
32 : _cached_size_{0},
33 eps_optimal_absolute_{1e-06},
34 eps_optimal_relative_{1e-06} {}
35
36template <typename>
38#if defined(PROTOBUF_CUSTOM_VTABLE)
39 : ::google::protobuf::Message(TerminationCriteria_SimpleOptimalityCriteria_class_data_.base()),
40#else // PROTOBUF_CUSTOM_VTABLE
41 : ::google::protobuf::Message(),
42#endif // PROTOBUF_CUSTOM_VTABLE
43 _impl_(::_pbi::ConstantInitialized()) {
44}
52
53PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
55
56inline constexpr TerminationCriteria_DetailedOptimalityCriteria::Impl_::Impl_(
57 ::_pbi::ConstantInitialized) noexcept
58 : _cached_size_{0},
59 eps_optimal_primal_residual_absolute_{1e-06},
60 eps_optimal_primal_residual_relative_{1e-06},
61 eps_optimal_dual_residual_absolute_{1e-06},
62 eps_optimal_dual_residual_relative_{1e-06},
63 eps_optimal_objective_gap_absolute_{1e-06},
64 eps_optimal_objective_gap_relative_{1e-06} {}
65
66template <typename>
68#if defined(PROTOBUF_CUSTOM_VTABLE)
69 : ::google::protobuf::Message(TerminationCriteria_DetailedOptimalityCriteria_class_data_.base()),
70#else // PROTOBUF_CUSTOM_VTABLE
71 : ::google::protobuf::Message(),
72#endif // PROTOBUF_CUSTOM_VTABLE
73 _impl_(::_pbi::ConstantInitialized()) {
74}
82
83PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
85
86inline constexpr MalitskyPockParams::Impl_::Impl_(
87 ::_pbi::ConstantInitialized) noexcept
88 : _cached_size_{0},
89 step_size_downscaling_factor_{0.7},
90 linesearch_contraction_factor_{0.99},
91 step_size_interpolation_{1} {}
92
93template <typename>
94PROTOBUF_CONSTEXPR MalitskyPockParams::MalitskyPockParams(::_pbi::ConstantInitialized)
95#if defined(PROTOBUF_CUSTOM_VTABLE)
96 : ::google::protobuf::Message(MalitskyPockParams_class_data_.base()),
97#else // PROTOBUF_CUSTOM_VTABLE
98 : ::google::protobuf::Message(),
99#endif // PROTOBUF_CUSTOM_VTABLE
100 _impl_(::_pbi::ConstantInitialized()) {
101}
109
110PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
112
113inline constexpr AdaptiveLinesearchParams::Impl_::Impl_(
114 ::_pbi::ConstantInitialized) noexcept
115 : _cached_size_{0},
116 step_size_reduction_exponent_{0.3},
117 step_size_growth_exponent_{0.6} {}
118
119template <typename>
120PROTOBUF_CONSTEXPR AdaptiveLinesearchParams::AdaptiveLinesearchParams(::_pbi::ConstantInitialized)
121#if defined(PROTOBUF_CUSTOM_VTABLE)
122 : ::google::protobuf::Message(AdaptiveLinesearchParams_class_data_.base()),
123#else // PROTOBUF_CUSTOM_VTABLE
124 : ::google::protobuf::Message(),
125#endif // PROTOBUF_CUSTOM_VTABLE
126 _impl_(::_pbi::ConstantInitialized()) {
127}
135
136PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
138
139inline constexpr TerminationCriteria::Impl_::Impl_(
140 ::_pbi::ConstantInitialized) noexcept
141 : _cached_size_{0},
142 eps_optimal_absolute_{1e-06},
143 eps_optimal_relative_{1e-06},
144 eps_primal_infeasible_{1e-08},
145 optimality_norm_{static_cast< ::operations_research::pdlp::OptimalityNorm >(2)},
146 iteration_limit_{2147483647},
147 eps_dual_infeasible_{1e-08},
148 time_sec_limit_{std::numeric_limits<double>::infinity()},
149 kkt_matrix_pass_limit_{std::numeric_limits<double>::infinity()},
150 optimality_criteria_{},
151 _oneof_case_{} {}
152
153template <typename>
154PROTOBUF_CONSTEXPR TerminationCriteria::TerminationCriteria(::_pbi::ConstantInitialized)
155#if defined(PROTOBUF_CUSTOM_VTABLE)
156 : ::google::protobuf::Message(TerminationCriteria_class_data_.base()),
157#else // PROTOBUF_CUSTOM_VTABLE
158 : ::google::protobuf::Message(),
159#endif // PROTOBUF_CUSTOM_VTABLE
160 _impl_(::_pbi::ConstantInitialized()) {
161}
169
170PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
172
173inline constexpr PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
174 ::_pbi::ConstantInitialized) noexcept
175 : _cached_size_{0},
176 glop_parameters_{nullptr},
177 use_glop_{false} {}
178
179template <typename>
181#if defined(PROTOBUF_CUSTOM_VTABLE)
182 : ::google::protobuf::Message(PrimalDualHybridGradientParams_PresolveOptions_class_data_.base()),
183#else // PROTOBUF_CUSTOM_VTABLE
184 : ::google::protobuf::Message(),
185#endif // PROTOBUF_CUSTOM_VTABLE
186 _impl_(::_pbi::ConstantInitialized()) {
187}
195
196PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
198
199inline constexpr PrimalDualHybridGradientParams::Impl_::Impl_(
200 ::_pbi::ConstantInitialized) noexcept
201 : _cached_size_{0},
202 random_projection_seeds_{},
203 _random_projection_seeds_cached_byte_size_{0},
204 termination_criteria_{nullptr},
205 presolve_options_{nullptr},
206 adaptive_linesearch_parameters_{nullptr},
207 malitsky_pock_parameters_{nullptr},
208 initial_primal_weight_{0},
209 record_iteration_stats_{false},
210 use_diagonal_qp_trust_region_solver_{false},
211 use_feasibility_polishing_{false},
212 verbosity_level_{0},
213 log_interval_seconds_{0},
214 num_shards_{0},
215 apply_feasibility_polishing_after_limits_reached_{false},
216 apply_feasibility_polishing_if_solver_is_interrupted_{false},
217 num_threads_{1},
218 major_iteration_frequency_{64},
219 termination_check_frequency_{64},
221 primal_weight_update_smoothing_{0.5},
222 l_inf_ruiz_iterations_{5},
224 sufficient_reduction_for_restart_{0.1},
225 necessary_reduction_for_restart_{0.9},
226 infinite_constraint_bound_threshold_{std::numeric_limits<double>::infinity()},
227 l2_norm_rescaling_{true},
228 handle_some_primal_gradients_on_finite_bounds_as_residuals_{true},
229 scheduler_type_{static_cast< ::operations_research::pdlp::SchedulerType >(1)},
230 diagonal_qp_trust_region_solver_tolerance_{1e-08},
231 initial_step_size_scaling_{1} {}
232
233template <typename>
234PROTOBUF_CONSTEXPR PrimalDualHybridGradientParams::PrimalDualHybridGradientParams(::_pbi::ConstantInitialized)
235#if defined(PROTOBUF_CUSTOM_VTABLE)
236 : ::google::protobuf::Message(PrimalDualHybridGradientParams_class_data_.base()),
237#else // PROTOBUF_CUSTOM_VTABLE
238 : ::google::protobuf::Message(),
239#endif // PROTOBUF_CUSTOM_VTABLE
240 _impl_(::_pbi::ConstantInitialized()) {
241}
249
250PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL
252} // namespace pdlp
253} // namespace operations_research
254static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
256static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
258const ::uint32_t
260 protodesc_cold) = {
261 0x081, // bitmap
263 5, // hasbit index offset
264 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_absolute_),
265 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_relative_),
266 0,
267 1,
268 0x081, // bitmap
270 9, // hasbit index offset
271 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_absolute_),
272 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_relative_),
273 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_absolute_),
274 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_relative_),
275 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_absolute_),
276 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_relative_),
277 0,
278 1,
279 2,
280 3,
281 4,
282 5,
283 0x085, // bitmap
284 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_._has_bits_),
285 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_._oneof_case_[0]),
286 15, // hasbit index offset
287 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.optimality_norm_),
288 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.optimality_criteria_),
289 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.optimality_criteria_),
290 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.eps_optimal_absolute_),
291 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.eps_optimal_relative_),
292 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.eps_primal_infeasible_),
293 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.eps_dual_infeasible_),
294 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.time_sec_limit_),
295 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.iteration_limit_),
296 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.kkt_matrix_pass_limit_),
297 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_.optimality_criteria_),
298 3,
299 ~0u,
300 ~0u,
301 0,
302 1,
303 2,
304 5,
305 6,
306 4,
307 7,
308 0x081, // bitmap
309 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::AdaptiveLinesearchParams, _impl_._has_bits_),
310 5, // hasbit index offset
311 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::AdaptiveLinesearchParams, _impl_.step_size_reduction_exponent_),
312 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::AdaptiveLinesearchParams, _impl_.step_size_growth_exponent_),
313 0,
314 1,
315 0x081, // bitmap
316 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::MalitskyPockParams, _impl_._has_bits_),
317 6, // hasbit index offset
318 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::MalitskyPockParams, _impl_.step_size_downscaling_factor_),
319 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::MalitskyPockParams, _impl_.linesearch_contraction_factor_),
320 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::MalitskyPockParams, _impl_.step_size_interpolation_),
321 0,
322 1,
323 2,
324 0x081, // bitmap
326 5, // hasbit index offset
328 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions, _impl_.glop_parameters_),
329 1,
330 0,
331 0x081, // bitmap
332 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_._has_bits_),
333 32, // hasbit index offset
334 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.termination_criteria_),
335 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.num_threads_),
336 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.num_shards_),
337 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.scheduler_type_),
338 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.record_iteration_stats_),
339 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.verbosity_level_),
340 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.log_interval_seconds_),
341 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.major_iteration_frequency_),
342 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.termination_check_frequency_),
343 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.restart_strategy_),
344 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.primal_weight_update_smoothing_),
345 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.initial_primal_weight_),
346 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.presolve_options_),
347 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.l_inf_ruiz_iterations_),
348 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.l2_norm_rescaling_),
349 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.sufficient_reduction_for_restart_),
350 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.necessary_reduction_for_restart_),
351 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.linesearch_rule_),
352 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.adaptive_linesearch_parameters_),
353 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.malitsky_pock_parameters_),
354 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.initial_step_size_scaling_),
355 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.random_projection_seeds_),
356 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.infinite_constraint_bound_threshold_),
357 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_),
358 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.use_diagonal_qp_trust_region_solver_),
359 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.diagonal_qp_trust_region_solver_tolerance_),
360 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.use_feasibility_polishing_),
361 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.apply_feasibility_polishing_after_limits_reached_),
362 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::PrimalDualHybridGradientParams, _impl_.apply_feasibility_polishing_if_solver_is_interrupted_),
363 1,
364 14,
365 11,
366 26,
367 6,
368 9,
369 10,
370 15,
371 16,
372 17,
373 18,
374 5,
375 2,
376 19,
377 24,
378 21,
379 22,
380 20,
381 3,
382 4,
383 28,
384 0,
385 23,
386 25,
387 7,
388 27,
389 8,
390 12,
391 13,
392};
393
394static const ::_pbi::MigrationSchema
395 schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
403};
413const char descriptor_table_protodef_ortools_2fpdlp_2fsolvers_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
414 protodesc_cold) = {
415 "\n\032ortools/pdlp/solvers.proto\022\030operations"
416 "_research.pdlp\032\035ortools/glop/parameters."
417 "proto\"\240\010\n\023TerminationCriteria\022U\n\017optimal"
418 "ity_norm\030\001 \001(\0162(.operations_research.pdl"
419 "p.OptimalityNorm:\022OPTIMALITY_NORM_L2\022l\n\032"
420 "simple_optimality_criteria\030\t \001(\0132F.opera"
421 "tions_research.pdlp.TerminationCriteria."
422 "SimpleOptimalityCriteriaH\000\022p\n\034detailed_o"
423 "ptimality_criteria\030\n \001(\0132H.operations_re"
424 "search.pdlp.TerminationCriteria.Detailed"
425 "OptimalityCriteriaH\000\022\'\n\024eps_optimal_abso"
426 "lute\030\002 \001(\001:\0051e-06B\002\030\001\022\'\n\024eps_optimal_rel"
427 "ative\030\003 \001(\001:\0051e-06B\002\030\001\022$\n\025eps_primal_inf"
428 "easible\030\004 \001(\001:\0051e-08\022\"\n\023eps_dual_infeasi"
429 "ble\030\005 \001(\001:\0051e-08\022\033\n\016time_sec_limit\030\006 \001(\001"
430 ":\003inf\022#\n\017iteration_limit\030\007 \001(\005:\n21474836"
431 "47\022\"\n\025kkt_matrix_pass_limit\030\010 \001(\001:\003inf\032d"
432 "\n\030SimpleOptimalityCriteria\022#\n\024eps_optima"
433 "l_absolute\030\001 \001(\001:\0051e-06\022#\n\024eps_optimal_r"
434 "elative\030\002 \001(\001:\0051e-06\032\322\002\n\032DetailedOptimal"
435 "ityCriteria\0223\n$eps_optimal_primal_residu"
436 "al_absolute\030\001 \001(\001:\0051e-06\0223\n$eps_optimal_"
437 "primal_residual_relative\030\002 \001(\001:\0051e-06\0221\n"
438 "\"eps_optimal_dual_residual_absolute\030\003 \001("
439 "\001:\0051e-06\0221\n\"eps_optimal_dual_residual_re"
440 "lative\030\004 \001(\001:\0051e-06\0221\n\"eps_optimal_objec"
441 "tive_gap_absolute\030\005 \001(\001:\0051e-06\0221\n\"eps_op"
442 "timal_objective_gap_relative\030\006 \001(\001:\0051e-0"
443 "6B\025\n\023optimality_criteria\"m\n\030AdaptiveLine"
444 "searchParams\022)\n\034step_size_reduction_expo"
445 "nent\030\001 \001(\001:\0030.3\022&\n\031step_size_growth_expo"
446 "nent\030\002 \001(\001:\0030.6\"\220\001\n\022MalitskyPockParams\022)"
447 "\n\034step_size_downscaling_factor\030\001 \001(\001:\0030."
448 "7\022+\n\035linesearch_contraction_factor\030\002 \001(\001"
449 ":\0040.99\022\"\n\027step_size_interpolation\030\003 \001(\001:"
450 "\0011\"\260\020\n\036PrimalDualHybridGradientParams\022K\n"
451 "\024termination_criteria\030\001 \001(\0132-.operations"
452 "_research.pdlp.TerminationCriteria\022\026\n\013nu"
453 "m_threads\030\002 \001(\005:\0011\022\025\n\nnum_shards\030\033 \001(\005:\001"
454 "0\022a\n\016scheduler_type\030 \001(\0162\'.operations_r"
455 "esearch.pdlp.SchedulerType: SCHEDULER_TY"
456 "PE_GOOGLE_THREADPOOL\022\036\n\026record_iteration"
457 "_stats\030\003 \001(\010\022\032\n\017verbosity_level\030\032 \001(\005:\0010"
458 "\022\037\n\024log_interval_seconds\030\037 \001(\001:\0010\022%\n\031maj"
459 "or_iteration_frequency\030\004 \001(\005:\00264\022\'\n\033term"
460 "ination_check_frequency\030\005 \001(\005:\00264\022v\n\020res"
461 "tart_strategy\030\006 \001(\0162H.operations_researc"
462 "h.pdlp.PrimalDualHybridGradientParams.Re"
463 "startStrategy:\022ADAPTIVE_HEURISTIC\022+\n\036pri"
464 "mal_weight_update_smoothing\030\007 \001(\001:\0030.5\022\035"
465 "\n\025initial_primal_weight\030\010 \001(\001\022b\n\020presolv"
466 "e_options\030\020 \001(\0132H.operations_research.pd"
467 "lp.PrimalDualHybridGradientParams.Presol"
468 "veOptions\022 \n\025l_inf_ruiz_iterations\030\t \001(\005"
469 ":\0015\022\037\n\021l2_norm_rescaling\030\n \001(\010:\004true\022-\n "
470 "sufficient_reduction_for_restart\030\013 \001(\001:\003"
471 "0.1\022,\n\037necessary_reduction_for_restart\030\021"
472 " \001(\001:\0030.9\022z\n\017linesearch_rule\030\014 \001(\0162G.ope"
473 "rations_research.pdlp.PrimalDualHybridGr"
474 "adientParams.LinesearchRule:\030ADAPTIVE_LI"
475 "NESEARCH_RULE\022Z\n\036adaptive_linesearch_par"
476 "ameters\030\022 \001(\01322.operations_research.pdlp"
477 ".AdaptiveLinesearchParams\022N\n\030malitsky_po"
478 "ck_parameters\030\023 \001(\0132,.operations_researc"
479 "h.pdlp.MalitskyPockParams\022$\n\031initial_ste"
480 "p_size_scaling\030\031 \001(\001:\0011\022#\n\027random_projec"
481 "tion_seeds\030\034 \003(\005B\002\020\001\0220\n#infinite_constra"
482 "int_bound_threshold\030\026 \001(\001:\003inf\022H\n:handle"
483 "_some_primal_gradients_on_finite_bounds_"
484 "as_residuals\030\035 \001(\010:\004true\0222\n#use_diagonal"
485 "_qp_trust_region_solver\030\027 \001(\010:\005false\0228\n)"
486 "diagonal_qp_trust_region_solver_toleranc"
487 "e\030\030 \001(\001:\0051e-08\022(\n\031use_feasibility_polish"
488 "ing\030\036 \001(\010:\005false\022\?\n0apply_feasibility_po"
489 "lishing_after_limits_reached\030! \001(\010:\005fals"
490 "e\022C\n4apply_feasibility_polishing_if_solv"
491 "er_is_interrupted\030\" \001(\010:\005false\032f\n\017Presol"
492 "veOptions\022\020\n\010use_glop\030\001 \001(\010\022A\n\017glop_para"
493 "meters\030\002 \001(\0132(.operations_research.glop."
494 "GlopParameters\"\224\001\n\017RestartStrategy\022 \n\034RE"
495 "START_STRATEGY_UNSPECIFIED\020\000\022\017\n\013NO_RESTA"
496 "RTS\020\001\022\031\n\025EVERY_MAJOR_ITERATION\020\002\022\026\n\022ADAP"
497 "TIVE_HEURISTIC\020\003\022\033\n\027ADAPTIVE_DISTANCE_BA"
498 "SED\020\004\"\217\001\n\016LinesearchRule\022\037\n\033LINESEARCH_R"
499 "ULE_UNSPECIFIED\020\000\022\034\n\030ADAPTIVE_LINESEARCH"
500 "_RULE\020\001\022!\n\035MALITSKY_POCK_LINESEARCH_RULE"
501 "\020\002\022\033\n\027CONSTANT_STEP_SIZE_RULE\020\003J\004\010\r\020\016J\004\010"
502 "\016\020\017J\004\010\017\020\020J\004\010\024\020\025J\004\010\025\020\026*\215\001\n\016OptimalityNorm"
503 "\022\037\n\033OPTIMALITY_NORM_UNSPECIFIED\020\000\022\031\n\025OPT"
504 "IMALITY_NORM_L_INF\020\001\022\026\n\022OPTIMALITY_NORM_"
505 "L2\020\002\022\'\n#OPTIMALITY_NORM_L_INF_COMPONENTW"
506 "ISE\020\003*z\n\rSchedulerType\022\036\n\032SCHEDULER_TYPE"
507 "_UNSPECIFIED\020\000\022$\n SCHEDULER_TYPE_GOOGLE_"
508 "THREADPOOL\020\001\022#\n\037SCHEDULER_TYPE_EIGEN_THR"
509 "EADPOOL\020\003B1\n\027com.google.ortools.pdlpP\001\252\002"
510 "\023Google.OrTools.PDLP"
511};
512static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
517PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_ortools_2fpdlp_2fsolvers_2eproto = {
518 false,
519 false,
520 3820,
521 descriptor_table_protodef_ortools_2fpdlp_2fsolvers_2eproto,
522 "ortools/pdlp/solvers.proto",
525 1,
526 7,
527 schemas,
532};
533namespace operations_research {
534namespace pdlp {
535const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL PrimalDualHybridGradientParams_RestartStrategy_descriptor() {
536 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fpdlp_2fsolvers_2eproto);
538}
540 327680u, 0u, };
541const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL PrimalDualHybridGradientParams_LinesearchRule_descriptor() {
542 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fpdlp_2fsolvers_2eproto);
544}
546 262144u, 0u, };
547const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL OptimalityNorm_descriptor() {
548 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fpdlp_2fsolvers_2eproto);
550}
551PROTOBUF_CONSTINIT const uint32_t OptimalityNorm_internal_data_[] = {
552 262144u, 0u, };
553const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SchedulerType_descriptor() {
554 ::google::protobuf::internal::AssignDescriptors(&descriptor_table_ortools_2fpdlp_2fsolvers_2eproto);
556}
557PROTOBUF_CONSTINIT const uint32_t SchedulerType_internal_data_[] = {
558 131072u, 32u, 2u, };
559// ===================================================================
560
561class TerminationCriteria_SimpleOptimalityCriteria::_Internal {
562 public:
563 using HasBits =
564 decltype(::std::declval<TerminationCriteria_SimpleOptimalityCriteria>()._impl_._has_bits_);
565 static constexpr ::int32_t kHasBitsOffset =
566 8 * PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_._has_bits_);
567};
568
570#if defined(PROTOBUF_CUSTOM_VTABLE)
571 : ::google::protobuf::Message(arena, TerminationCriteria_SimpleOptimalityCriteria_class_data_.base()) {
572#else // PROTOBUF_CUSTOM_VTABLE
573 : ::google::protobuf::Message(arena) {
574#endif // PROTOBUF_CUSTOM_VTABLE
575 SharedCtor(arena);
576 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
577}
579 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TerminationCriteria_SimpleOptimalityCriteria& from)
580#if defined(PROTOBUF_CUSTOM_VTABLE)
581 : ::google::protobuf::Message(arena, TerminationCriteria_SimpleOptimalityCriteria_class_data_.base()),
582#else // PROTOBUF_CUSTOM_VTABLE
583 : ::google::protobuf::Message(arena),
584#endif // PROTOBUF_CUSTOM_VTABLE
585 _impl_(from._impl_) {
586 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
587 from._internal_metadata_);
588}
589PROTOBUF_NDEBUG_INLINE TerminationCriteria_SimpleOptimalityCriteria::Impl_::Impl_(
590 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
591 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
592 : _cached_size_{0},
593 eps_optimal_absolute_{1e-06},
594 eps_optimal_relative_{1e-06} {}
595
596inline void TerminationCriteria_SimpleOptimalityCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
597 new (&_impl_) Impl_(internal_visibility(), arena);
598}
600 // @@protoc_insertion_point(destructor:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
601 SharedDtor(*this);
602}
603inline void TerminationCriteria_SimpleOptimalityCriteria::SharedDtor(MessageLite& self) {
605 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
606 this_.CheckHasBitConsistency();
607 }
608 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
609 ABSL_DCHECK(this_.GetArena() == nullptr);
610 this_._impl_.~Impl_();
611}
612
613inline void* PROTOBUF_NONNULL TerminationCriteria_SimpleOptimalityCriteria::PlacementNew_(
614 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
615 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
616 return ::new (mem) TerminationCriteria_SimpleOptimalityCriteria(arena);
617}
618constexpr auto TerminationCriteria_SimpleOptimalityCriteria::InternalNewImpl_() {
619 return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TerminationCriteria_SimpleOptimalityCriteria),
621}
623 return ::google::protobuf::internal::ClassDataFull{
624 ::google::protobuf::internal::ClassData{
626 &_table_.header,
627 nullptr, // OnDemandRegisterArenaDtor
628 nullptr, // IsInitialized
629 &TerminationCriteria_SimpleOptimalityCriteria::MergeImpl,
630 ::google::protobuf::Message::GetNewImpl<TerminationCriteria_SimpleOptimalityCriteria>(),
631#if defined(PROTOBUF_CUSTOM_VTABLE)
632 &TerminationCriteria_SimpleOptimalityCriteria::SharedDtor,
633 ::google::protobuf::Message::GetClearImpl<TerminationCriteria_SimpleOptimalityCriteria>(), &TerminationCriteria_SimpleOptimalityCriteria::ByteSizeLong,
635#endif // PROTOBUF_CUSTOM_VTABLE
636 PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_._cached_size_),
637 false,
638 },
639 &TerminationCriteria_SimpleOptimalityCriteria::kDescriptorMethods,
641 nullptr, // tracker
642 };
643}
644
645PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
646 ::google::protobuf::internal::ClassDataFull TerminationCriteria_SimpleOptimalityCriteria_class_data_ =
648
649PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
650TerminationCriteria_SimpleOptimalityCriteria::GetClassData() const {
651 ::google::protobuf::internal::PrefetchToLocalCache(&TerminationCriteria_SimpleOptimalityCriteria_class_data_);
652 ::google::protobuf::internal::PrefetchToLocalCache(TerminationCriteria_SimpleOptimalityCriteria_class_data_.tc_table);
654}
655PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
656const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
657TerminationCriteria_SimpleOptimalityCriteria::_table_ = {
658 {
659 PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_._has_bits_),
660 0, // no _extensions_
661 2, 8, // max_field_number, fast_idx_mask
662 offsetof(decltype(_table_), field_lookup_table),
663 4294967292, // skipmap
664 offsetof(decltype(_table_), field_entries),
665 2, // num_field_entries
666 0, // num_aux_entries
667 offsetof(decltype(_table_), field_names), // no aux_entries
669 nullptr, // post_loop_handler
670 ::_pbi::TcParser::GenericFallback, // fallback
671 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
672 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria>(), // to_prefetch
673 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
674 }, {{
675 // optional double eps_optimal_relative = 2 [default = 1e-06];
676 {::_pbi::TcParser::FastF64S1,
677 {17, 1, 0,
678 PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_relative_)}},
679 // optional double eps_optimal_absolute = 1 [default = 1e-06];
680 {::_pbi::TcParser::FastF64S1,
681 {9, 0, 0,
682 PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_absolute_)}},
683 }}, {{
684 65535, 65535
685 }}, {{
686 // optional double eps_optimal_absolute = 1 [default = 1e-06];
687 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_absolute_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
688 // optional double eps_optimal_relative = 2 [default = 1e-06];
689 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_relative_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
690 }},
691 // no aux_entries
692 {{
693 }},
694};
696// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
697 ::google::protobuf::internal::TSanWrite(&_impl_);
698 ::uint32_t cached_has_bits = 0;
699 // Prevent compiler warnings about cached_has_bits being unused
700 (void) cached_has_bits;
701
702 cached_has_bits = _impl_._has_bits_[0];
703 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
704 _impl_.eps_optimal_absolute_ = 1e-06;
705 _impl_.eps_optimal_relative_ = 1e-06;
706 }
707 _impl_._has_bits_.Clear();
708 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
709}
710
711#if defined(PROTOBUF_CUSTOM_VTABLE)
713 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
714 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
716#else // PROTOBUF_CUSTOM_VTABLE
718 ::uint8_t* PROTOBUF_NONNULL target,
719 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
721#endif // PROTOBUF_CUSTOM_VTABLE
722 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
723 this_.CheckHasBitConsistency();
724 }
725 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
726 ::uint32_t cached_has_bits = 0;
727 (void)cached_has_bits;
728
729 cached_has_bits = this_._impl_._has_bits_[0];
730 // optional double eps_optimal_absolute = 1 [default = 1e-06];
731 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
732 target = stream->EnsureSpace(target);
733 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
734 1, this_._internal_eps_optimal_absolute(), target);
735 }
736
737 // optional double eps_optimal_relative = 2 [default = 1e-06];
738 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
739 target = stream->EnsureSpace(target);
740 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
741 2, this_._internal_eps_optimal_relative(), target);
742 }
743
744 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
745 target =
746 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
747 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
748 }
749 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
750 return target;
751}
752
753#if defined(PROTOBUF_CUSTOM_VTABLE)
756#else // PROTOBUF_CUSTOM_VTABLE
759#endif // PROTOBUF_CUSTOM_VTABLE
760 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
761 ::size_t total_size = 0;
762
763 ::uint32_t cached_has_bits = 0;
764 // Prevent compiler warnings about cached_has_bits being unused
765 (void)cached_has_bits;
766
767 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
768 cached_has_bits = this_._impl_._has_bits_[0];
769 total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 9;
770 return this_.MaybeComputeUnknownFieldsSize(total_size,
771 &this_._impl_._cached_size_);
772}
773
774void TerminationCriteria_SimpleOptimalityCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
775 const ::google::protobuf::MessageLite& from_msg) {
776 auto* const _this =
778 auto& from = static_cast<const TerminationCriteria_SimpleOptimalityCriteria&>(from_msg);
779 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
780 from.CheckHasBitConsistency();
781 }
782 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
783 ABSL_DCHECK_NE(&from, _this);
784 ::uint32_t cached_has_bits = 0;
785 (void)cached_has_bits;
786
787 cached_has_bits = from._impl_._has_bits_[0];
788 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
789 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
790 _this->_impl_.eps_optimal_absolute_ = from._impl_.eps_optimal_absolute_;
791 }
792 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
793 _this->_impl_.eps_optimal_relative_ = from._impl_.eps_optimal_relative_;
794 }
795 }
796 _this->_impl_._has_bits_[0] |= cached_has_bits;
797 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
798 from._internal_metadata_);
799}
800
802 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria)
803 if (&from == this) return;
804 Clear();
805 MergeFrom(from);
806}
807
808
809void TerminationCriteria_SimpleOptimalityCriteria::InternalSwap(TerminationCriteria_SimpleOptimalityCriteria* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
810 using ::std::swap;
811 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
812 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
813 ::google::protobuf::internal::memswap<
814 PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_relative_)
815 + sizeof(TerminationCriteria_SimpleOptimalityCriteria::_impl_.eps_optimal_relative_)
816 - PROTOBUF_FIELD_OFFSET(TerminationCriteria_SimpleOptimalityCriteria, _impl_.eps_optimal_absolute_)>(
817 reinterpret_cast<char*>(&_impl_.eps_optimal_absolute_),
818 reinterpret_cast<char*>(&other->_impl_.eps_optimal_absolute_));
819}
820
821::google::protobuf::Metadata TerminationCriteria_SimpleOptimalityCriteria::GetMetadata() const {
822 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
823}
824// ===================================================================
825
827 public:
828 using HasBits =
829 decltype(::std::declval<TerminationCriteria_DetailedOptimalityCriteria>()._impl_._has_bits_);
830 static constexpr ::int32_t kHasBitsOffset =
831 8 * PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_._has_bits_);
833
835#if defined(PROTOBUF_CUSTOM_VTABLE)
836 : ::google::protobuf::Message(arena, TerminationCriteria_DetailedOptimalityCriteria_class_data_.base()) {
837#else // PROTOBUF_CUSTOM_VTABLE
838 : ::google::protobuf::Message(arena) {
839#endif // PROTOBUF_CUSTOM_VTABLE
840 SharedCtor(arena);
841 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
842}
844 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TerminationCriteria_DetailedOptimalityCriteria& from)
845#if defined(PROTOBUF_CUSTOM_VTABLE)
846 : ::google::protobuf::Message(arena, TerminationCriteria_DetailedOptimalityCriteria_class_data_.base()),
847#else // PROTOBUF_CUSTOM_VTABLE
848 : ::google::protobuf::Message(arena),
849#endif // PROTOBUF_CUSTOM_VTABLE
850 _impl_(from._impl_) {
851 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
852 from._internal_metadata_);
853}
854PROTOBUF_NDEBUG_INLINE TerminationCriteria_DetailedOptimalityCriteria::Impl_::Impl_(
855 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
856 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
857 : _cached_size_{0},
858 eps_optimal_primal_residual_absolute_{1e-06},
859 eps_optimal_primal_residual_relative_{1e-06},
860 eps_optimal_dual_residual_absolute_{1e-06},
861 eps_optimal_dual_residual_relative_{1e-06},
862 eps_optimal_objective_gap_absolute_{1e-06},
863 eps_optimal_objective_gap_relative_{1e-06} {}
864
865inline void TerminationCriteria_DetailedOptimalityCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
866 new (&_impl_) Impl_(internal_visibility(), arena);
867}
869 // @@protoc_insertion_point(destructor:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
870 SharedDtor(*this);
871}
872inline void TerminationCriteria_DetailedOptimalityCriteria::SharedDtor(MessageLite& self) {
874 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
875 this_.CheckHasBitConsistency();
876 }
877 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
878 ABSL_DCHECK(this_.GetArena() == nullptr);
879 this_._impl_.~Impl_();
880}
881
882inline void* PROTOBUF_NONNULL TerminationCriteria_DetailedOptimalityCriteria::PlacementNew_(
883 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
884 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
885 return ::new (mem) TerminationCriteria_DetailedOptimalityCriteria(arena);
886}
887constexpr auto TerminationCriteria_DetailedOptimalityCriteria::InternalNewImpl_() {
888 return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TerminationCriteria_DetailedOptimalityCriteria),
890}
892 return ::google::protobuf::internal::ClassDataFull{
893 ::google::protobuf::internal::ClassData{
895 &_table_.header,
896 nullptr, // OnDemandRegisterArenaDtor
897 nullptr, // IsInitialized
898 &TerminationCriteria_DetailedOptimalityCriteria::MergeImpl,
899 ::google::protobuf::Message::GetNewImpl<TerminationCriteria_DetailedOptimalityCriteria>(),
900#if defined(PROTOBUF_CUSTOM_VTABLE)
901 &TerminationCriteria_DetailedOptimalityCriteria::SharedDtor,
902 ::google::protobuf::Message::GetClearImpl<TerminationCriteria_DetailedOptimalityCriteria>(), &TerminationCriteria_DetailedOptimalityCriteria::ByteSizeLong,
904#endif // PROTOBUF_CUSTOM_VTABLE
905 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_._cached_size_),
906 false,
907 },
908 &TerminationCriteria_DetailedOptimalityCriteria::kDescriptorMethods,
910 nullptr, // tracker
911 };
912}
913
914PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
915 ::google::protobuf::internal::ClassDataFull TerminationCriteria_DetailedOptimalityCriteria_class_data_ =
918PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
919TerminationCriteria_DetailedOptimalityCriteria::GetClassData() const {
920 ::google::protobuf::internal::PrefetchToLocalCache(&TerminationCriteria_DetailedOptimalityCriteria_class_data_);
921 ::google::protobuf::internal::PrefetchToLocalCache(TerminationCriteria_DetailedOptimalityCriteria_class_data_.tc_table);
923}
924PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
925const ::_pbi::TcParseTable<3, 6, 0, 0, 2>
926TerminationCriteria_DetailedOptimalityCriteria::_table_ = {
927 {
928 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_._has_bits_),
929 0, // no _extensions_
930 6, 56, // max_field_number, fast_idx_mask
931 offsetof(decltype(_table_), field_lookup_table),
932 4294967232, // skipmap
933 offsetof(decltype(_table_), field_entries),
934 6, // num_field_entries
935 0, // num_aux_entries
936 offsetof(decltype(_table_), field_names), // no aux_entries
938 nullptr, // post_loop_handler
939 ::_pbi::TcParser::GenericFallback, // fallback
940 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
941 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria>(), // to_prefetch
942 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
943 }, {{
944 {::_pbi::TcParser::MiniParse, {}},
945 // optional double eps_optimal_primal_residual_absolute = 1 [default = 1e-06];
946 {::_pbi::TcParser::FastF64S1,
947 {9, 0, 0,
948 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_absolute_)}},
949 // optional double eps_optimal_primal_residual_relative = 2 [default = 1e-06];
950 {::_pbi::TcParser::FastF64S1,
951 {17, 1, 0,
952 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_relative_)}},
953 // optional double eps_optimal_dual_residual_absolute = 3 [default = 1e-06];
954 {::_pbi::TcParser::FastF64S1,
955 {25, 2, 0,
956 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_absolute_)}},
957 // optional double eps_optimal_dual_residual_relative = 4 [default = 1e-06];
958 {::_pbi::TcParser::FastF64S1,
959 {33, 3, 0,
960 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_relative_)}},
961 // optional double eps_optimal_objective_gap_absolute = 5 [default = 1e-06];
962 {::_pbi::TcParser::FastF64S1,
963 {41, 4, 0,
964 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_absolute_)}},
965 // optional double eps_optimal_objective_gap_relative = 6 [default = 1e-06];
966 {::_pbi::TcParser::FastF64S1,
967 {49, 5, 0,
968 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_relative_)}},
969 {::_pbi::TcParser::MiniParse, {}},
970 }}, {{
971 65535, 65535
972 }}, {{
973 // optional double eps_optimal_primal_residual_absolute = 1 [default = 1e-06];
974 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_absolute_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
975 // optional double eps_optimal_primal_residual_relative = 2 [default = 1e-06];
976 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_relative_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
977 // optional double eps_optimal_dual_residual_absolute = 3 [default = 1e-06];
978 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_absolute_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
979 // optional double eps_optimal_dual_residual_relative = 4 [default = 1e-06];
980 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_dual_residual_relative_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
981 // optional double eps_optimal_objective_gap_absolute = 5 [default = 1e-06];
982 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_absolute_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
983 // optional double eps_optimal_objective_gap_relative = 6 [default = 1e-06];
984 {PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_relative_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
985 }},
986 // no aux_entries
987 {{
988 }},
989};
991// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
992 ::google::protobuf::internal::TSanWrite(&_impl_);
993 ::uint32_t cached_has_bits = 0;
994 // Prevent compiler warnings about cached_has_bits being unused
995 (void) cached_has_bits;
996
997 cached_has_bits = _impl_._has_bits_[0];
998 if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
999 _impl_.eps_optimal_primal_residual_absolute_ = 1e-06;
1000 _impl_.eps_optimal_primal_residual_relative_ = 1e-06;
1001 _impl_.eps_optimal_dual_residual_absolute_ = 1e-06;
1002 _impl_.eps_optimal_dual_residual_relative_ = 1e-06;
1003 _impl_.eps_optimal_objective_gap_absolute_ = 1e-06;
1004 _impl_.eps_optimal_objective_gap_relative_ = 1e-06;
1005 }
1006 _impl_._has_bits_.Clear();
1007 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1008}
1009
1010#if defined(PROTOBUF_CUSTOM_VTABLE)
1012 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1013 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1015#else // PROTOBUF_CUSTOM_VTABLE
1017 ::uint8_t* PROTOBUF_NONNULL target,
1018 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
1020#endif // PROTOBUF_CUSTOM_VTABLE
1021 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1022 this_.CheckHasBitConsistency();
1023 }
1024 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
1025 ::uint32_t cached_has_bits = 0;
1026 (void)cached_has_bits;
1027
1028 cached_has_bits = this_._impl_._has_bits_[0];
1029 // optional double eps_optimal_primal_residual_absolute = 1 [default = 1e-06];
1030 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1031 target = stream->EnsureSpace(target);
1032 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1033 1, this_._internal_eps_optimal_primal_residual_absolute(), target);
1034 }
1035
1036 // optional double eps_optimal_primal_residual_relative = 2 [default = 1e-06];
1037 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1038 target = stream->EnsureSpace(target);
1039 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1040 2, this_._internal_eps_optimal_primal_residual_relative(), target);
1041 }
1042
1043 // optional double eps_optimal_dual_residual_absolute = 3 [default = 1e-06];
1044 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1045 target = stream->EnsureSpace(target);
1046 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1047 3, this_._internal_eps_optimal_dual_residual_absolute(), target);
1048 }
1049
1050 // optional double eps_optimal_dual_residual_relative = 4 [default = 1e-06];
1051 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1052 target = stream->EnsureSpace(target);
1053 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1054 4, this_._internal_eps_optimal_dual_residual_relative(), target);
1055 }
1056
1057 // optional double eps_optimal_objective_gap_absolute = 5 [default = 1e-06];
1058 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1059 target = stream->EnsureSpace(target);
1060 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1061 5, this_._internal_eps_optimal_objective_gap_absolute(), target);
1062 }
1063
1064 // optional double eps_optimal_objective_gap_relative = 6 [default = 1e-06];
1065 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1066 target = stream->EnsureSpace(target);
1067 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1068 6, this_._internal_eps_optimal_objective_gap_relative(), target);
1069 }
1070
1071 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1072 target =
1073 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1074 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1075 }
1076 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
1077 return target;
1078}
1079
1080#if defined(PROTOBUF_CUSTOM_VTABLE)
1083#else // PROTOBUF_CUSTOM_VTABLE
1086#endif // PROTOBUF_CUSTOM_VTABLE
1087 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
1088 ::size_t total_size = 0;
1089
1090 ::uint32_t cached_has_bits = 0;
1091 // Prevent compiler warnings about cached_has_bits being unused
1092 (void)cached_has_bits;
1093
1094 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1095 cached_has_bits = this_._impl_._has_bits_[0];
1096 total_size += ::absl::popcount(0x0000003fU & cached_has_bits) * 9;
1097 return this_.MaybeComputeUnknownFieldsSize(total_size,
1098 &this_._impl_._cached_size_);
1099}
1100
1101void TerminationCriteria_DetailedOptimalityCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
1102 const ::google::protobuf::MessageLite& from_msg) {
1103 auto* const _this =
1105 auto& from = static_cast<const TerminationCriteria_DetailedOptimalityCriteria&>(from_msg);
1106 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1107 from.CheckHasBitConsistency();
1108 }
1109 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
1110 ABSL_DCHECK_NE(&from, _this);
1111 ::uint32_t cached_has_bits = 0;
1112 (void)cached_has_bits;
1113
1114 cached_has_bits = from._impl_._has_bits_[0];
1115 if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
1116 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1117 _this->_impl_.eps_optimal_primal_residual_absolute_ = from._impl_.eps_optimal_primal_residual_absolute_;
1118 }
1119 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1120 _this->_impl_.eps_optimal_primal_residual_relative_ = from._impl_.eps_optimal_primal_residual_relative_;
1121 }
1122 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1123 _this->_impl_.eps_optimal_dual_residual_absolute_ = from._impl_.eps_optimal_dual_residual_absolute_;
1124 }
1125 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1126 _this->_impl_.eps_optimal_dual_residual_relative_ = from._impl_.eps_optimal_dual_residual_relative_;
1127 }
1128 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1129 _this->_impl_.eps_optimal_objective_gap_absolute_ = from._impl_.eps_optimal_objective_gap_absolute_;
1130 }
1131 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1132 _this->_impl_.eps_optimal_objective_gap_relative_ = from._impl_.eps_optimal_objective_gap_relative_;
1133 }
1134 }
1135 _this->_impl_._has_bits_[0] |= cached_has_bits;
1136 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1137 from._internal_metadata_);
1138}
1139
1141 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria)
1142 if (&from == this) return;
1143 Clear();
1144 MergeFrom(from);
1145}
1146
1147
1148void TerminationCriteria_DetailedOptimalityCriteria::InternalSwap(TerminationCriteria_DetailedOptimalityCriteria* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1149 using ::std::swap;
1150 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1151 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1152 ::google::protobuf::internal::memswap<
1153 PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_objective_gap_relative_)
1154 + sizeof(TerminationCriteria_DetailedOptimalityCriteria::_impl_.eps_optimal_objective_gap_relative_)
1155 - PROTOBUF_FIELD_OFFSET(TerminationCriteria_DetailedOptimalityCriteria, _impl_.eps_optimal_primal_residual_absolute_)>(
1156 reinterpret_cast<char*>(&_impl_.eps_optimal_primal_residual_absolute_),
1157 reinterpret_cast<char*>(&other->_impl_.eps_optimal_primal_residual_absolute_));
1158}
1159
1160::google::protobuf::Metadata TerminationCriteria_DetailedOptimalityCriteria::GetMetadata() const {
1161 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1163// ===================================================================
1164
1166 public:
1167 using HasBits =
1168 decltype(::std::declval<TerminationCriteria>()._impl_._has_bits_);
1169 static constexpr ::int32_t kHasBitsOffset =
1170 8 * PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_._has_bits_);
1171 static constexpr ::int32_t kOneofCaseOffset =
1172 PROTOBUF_FIELD_OFFSET(::operations_research::pdlp::TerminationCriteria, _impl_._oneof_case_);
1173};
1176 ::google::protobuf::Arena* message_arena = GetArena();
1179 ::google::protobuf::Arena* submessage_arena = simple_optimality_criteria->GetArena();
1180 if (message_arena != submessage_arena) {
1181 simple_optimality_criteria = ::google::protobuf::internal::GetOwnedMessage(message_arena, simple_optimality_criteria, submessage_arena);
1182 }
1183 set_has_simple_optimality_criteria();
1184 _impl_.optimality_criteria_.simple_optimality_criteria_ = simple_optimality_criteria;
1185 }
1186 // @@protoc_insertion_point(field_set_allocated:operations_research.pdlp.TerminationCriteria.simple_optimality_criteria)
1187}
1189 ::google::protobuf::Arena* message_arena = GetArena();
1190 clear_optimality_criteria();
1192 ::google::protobuf::Arena* submessage_arena = detailed_optimality_criteria->GetArena();
1193 if (message_arena != submessage_arena) {
1194 detailed_optimality_criteria = ::google::protobuf::internal::GetOwnedMessage(message_arena, detailed_optimality_criteria, submessage_arena);
1195 }
1196 set_has_detailed_optimality_criteria();
1197 _impl_.optimality_criteria_.detailed_optimality_criteria_ = detailed_optimality_criteria;
1198 }
1199 // @@protoc_insertion_point(field_set_allocated:operations_research.pdlp.TerminationCriteria.detailed_optimality_criteria)
1200}
1201TerminationCriteria::TerminationCriteria(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1202#if defined(PROTOBUF_CUSTOM_VTABLE)
1203 : ::google::protobuf::Message(arena, TerminationCriteria_class_data_.base()) {
1204#else // PROTOBUF_CUSTOM_VTABLE
1205 : ::google::protobuf::Message(arena) {
1206#endif // PROTOBUF_CUSTOM_VTABLE
1207 SharedCtor(arena);
1208 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.TerminationCriteria)
1209}
1210PROTOBUF_NDEBUG_INLINE TerminationCriteria::Impl_::Impl_(
1211 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1212 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
1213 [[maybe_unused]] const ::operations_research::pdlp::TerminationCriteria& from_msg)
1214 : _has_bits_{from._has_bits_},
1215 _cached_size_{0},
1216 optimality_criteria_{},
1217 _oneof_case_{from._oneof_case_[0]} {}
1218
1220 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
1221 const TerminationCriteria& from)
1222#if defined(PROTOBUF_CUSTOM_VTABLE)
1223 : ::google::protobuf::Message(arena, TerminationCriteria_class_data_.base()) {
1224#else // PROTOBUF_CUSTOM_VTABLE
1225 : ::google::protobuf::Message(arena) {
1226#endif // PROTOBUF_CUSTOM_VTABLE
1227 TerminationCriteria* const _this = this;
1228 (void)_this;
1229 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1230 from._internal_metadata_);
1231 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
1232 ::memcpy(reinterpret_cast<char*>(&_impl_) +
1233 offsetof(Impl_, eps_optimal_absolute_),
1234 reinterpret_cast<const char*>(&from._impl_) +
1235 offsetof(Impl_, eps_optimal_absolute_),
1236 offsetof(Impl_, kkt_matrix_pass_limit_) -
1237 offsetof(Impl_, eps_optimal_absolute_) +
1238 sizeof(Impl_::kkt_matrix_pass_limit_));
1239 switch (optimality_criteria_case()) {
1240 case OPTIMALITY_CRITERIA_NOT_SET:
1241 break;
1242 case kSimpleOptimalityCriteria:
1243 _impl_.optimality_criteria_.simple_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.simple_optimality_criteria_);
1244 break;
1245 case kDetailedOptimalityCriteria:
1246 _impl_.optimality_criteria_.detailed_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1247 break;
1248 }
1249
1250 // @@protoc_insertion_point(copy_constructor:operations_research.pdlp.TerminationCriteria)
1251}
1252PROTOBUF_NDEBUG_INLINE TerminationCriteria::Impl_::Impl_(
1253 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1254 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1255 : _cached_size_{0},
1256 eps_optimal_absolute_{1e-06},
1257 eps_optimal_relative_{1e-06},
1258 eps_primal_infeasible_{1e-08},
1259 optimality_norm_{static_cast< ::operations_research::pdlp::OptimalityNorm >(2)},
1260 iteration_limit_{2147483647},
1261 eps_dual_infeasible_{1e-08},
1262 time_sec_limit_{std::numeric_limits<double>::infinity()},
1263 kkt_matrix_pass_limit_{std::numeric_limits<double>::infinity()},
1264 optimality_criteria_{},
1265 _oneof_case_{} {}
1266
1267inline void TerminationCriteria::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1268 new (&_impl_) Impl_(internal_visibility(), arena);
1269}
1271 // @@protoc_insertion_point(destructor:operations_research.pdlp.TerminationCriteria)
1272 SharedDtor(*this);
1274inline void TerminationCriteria::SharedDtor(MessageLite& self) {
1275 TerminationCriteria& this_ = static_cast<TerminationCriteria&>(self);
1276 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1277 this_.CheckHasBitConsistency();
1278 }
1279 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1280 ABSL_DCHECK(this_.GetArena() == nullptr);
1281 if (this_.has_optimality_criteria()) {
1283 }
1284 this_._impl_.~Impl_();
1285}
1286
1288// @@protoc_insertion_point(one_of_clear_start:operations_research.pdlp.TerminationCriteria)
1289 ::google::protobuf::internal::TSanWrite(&_impl_);
1292 if (GetArena() == nullptr) {
1293 delete _impl_.optimality_criteria_.simple_optimality_criteria_;
1294 } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
1295 ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.optimality_criteria_.simple_optimality_criteria_);
1296 }
1297 break;
1298 }
1300 if (GetArena() == nullptr) {
1301 delete _impl_.optimality_criteria_.detailed_optimality_criteria_;
1302 } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
1303 ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.optimality_criteria_.detailed_optimality_criteria_);
1304 }
1305 break;
1306 }
1308 break;
1309 }
1310 }
1311 _impl_._oneof_case_[0] = OPTIMALITY_CRITERIA_NOT_SET;
1312}
1313
1314
1315inline void* PROTOBUF_NONNULL TerminationCriteria::PlacementNew_(
1316 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
1317 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1318 return ::new (mem) TerminationCriteria(arena);
1319}
1320constexpr auto TerminationCriteria::InternalNewImpl_() {
1321 return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TerminationCriteria),
1322 alignof(TerminationCriteria));
1323}
1325 return ::google::protobuf::internal::ClassDataFull{
1326 ::google::protobuf::internal::ClassData{
1328 &_table_.header,
1329 nullptr, // OnDemandRegisterArenaDtor
1330 nullptr, // IsInitialized
1331 &TerminationCriteria::MergeImpl,
1332 ::google::protobuf::Message::GetNewImpl<TerminationCriteria>(),
1333#if defined(PROTOBUF_CUSTOM_VTABLE)
1334 &TerminationCriteria::SharedDtor,
1335 ::google::protobuf::Message::GetClearImpl<TerminationCriteria>(), &TerminationCriteria::ByteSizeLong,
1337#endif // PROTOBUF_CUSTOM_VTABLE
1338 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_._cached_size_),
1339 false,
1340 },
1341 &TerminationCriteria::kDescriptorMethods,
1343 nullptr, // tracker
1344 };
1345}
1346
1347PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1348 ::google::protobuf::internal::ClassDataFull TerminationCriteria_class_data_ =
1350
1351PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1352TerminationCriteria::GetClassData() const {
1353 ::google::protobuf::internal::PrefetchToLocalCache(&TerminationCriteria_class_data_);
1354 ::google::protobuf::internal::PrefetchToLocalCache(TerminationCriteria_class_data_.tc_table);
1355 return TerminationCriteria_class_data_.base();
1356}
1357PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1358const ::_pbi::TcParseTable<3, 10, 3, 0, 2>
1359TerminationCriteria::_table_ = {
1360 {
1361 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_._has_bits_),
1362 0, // no _extensions_
1363 10, 56, // max_field_number, fast_idx_mask
1364 offsetof(decltype(_table_), field_lookup_table),
1365 4294966272, // skipmap
1366 offsetof(decltype(_table_), field_entries),
1367 10, // num_field_entries
1368 3, // num_aux_entries
1369 offsetof(decltype(_table_), aux_entries),
1371 nullptr, // post_loop_handler
1372 ::_pbi::TcParser::GenericFallback, // fallback
1373 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1374 ::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria>(), // to_prefetch
1375 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
1376 }, {{
1377 // optional double kkt_matrix_pass_limit = 8 [default = inf];
1378 {::_pbi::TcParser::FastF64S1,
1379 {65, 7, 0,
1380 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.kkt_matrix_pass_limit_)}},
1381 // optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
1382 {::_pbi::TcParser::FastEr0S1,
1383 {8, 3, 3,
1384 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.optimality_norm_)}},
1385 // optional double eps_optimal_absolute = 2 [default = 1e-06, deprecated = true];
1386 {::_pbi::TcParser::FastF64S1,
1387 {17, 0, 0,
1388 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_optimal_absolute_)}},
1389 // optional double eps_optimal_relative = 3 [default = 1e-06, deprecated = true];
1390 {::_pbi::TcParser::FastF64S1,
1391 {25, 1, 0,
1392 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_optimal_relative_)}},
1393 // optional double eps_primal_infeasible = 4 [default = 1e-08];
1394 {::_pbi::TcParser::FastF64S1,
1395 {33, 2, 0,
1396 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_primal_infeasible_)}},
1397 // optional double eps_dual_infeasible = 5 [default = 1e-08];
1398 {::_pbi::TcParser::FastF64S1,
1399 {41, 5, 0,
1400 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_dual_infeasible_)}},
1401 // optional double time_sec_limit = 6 [default = inf];
1402 {::_pbi::TcParser::FastF64S1,
1403 {49, 6, 0,
1404 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.time_sec_limit_)}},
1405 // optional int32 iteration_limit = 7 [default = 2147483647];
1406 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TerminationCriteria, _impl_.iteration_limit_), 4>(),
1407 {56, 4, 0,
1408 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.iteration_limit_)}},
1409 }}, {{
1410 65535, 65535
1411 }}, {{
1412 // optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
1413 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.optimality_norm_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
1414 // optional double eps_optimal_absolute = 2 [default = 1e-06, deprecated = true];
1415 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_optimal_absolute_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1416 // optional double eps_optimal_relative = 3 [default = 1e-06, deprecated = true];
1417 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_optimal_relative_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1418 // optional double eps_primal_infeasible = 4 [default = 1e-08];
1419 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_primal_infeasible_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1420 // optional double eps_dual_infeasible = 5 [default = 1e-08];
1421 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_dual_infeasible_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1422 // optional double time_sec_limit = 6 [default = inf];
1423 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.time_sec_limit_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1424 // optional int32 iteration_limit = 7 [default = 2147483647];
1425 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.iteration_limit_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1426 // optional double kkt_matrix_pass_limit = 8 [default = inf];
1427 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.kkt_matrix_pass_limit_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1428 // .operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
1429 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.optimality_criteria_.simple_optimality_criteria_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
1430 // .operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
1431 {PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.optimality_criteria_.detailed_optimality_criteria_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
1432 }},
1433 {{
1434 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria>()},
1435 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria>()},
1436 {0, 3},
1437 }},
1438 {{
1439 }},
1440};
1441PROTOBUF_NOINLINE void TerminationCriteria::Clear() {
1442// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.TerminationCriteria)
1443 ::google::protobuf::internal::TSanWrite(&_impl_);
1444 ::uint32_t cached_has_bits = 0;
1445 // Prevent compiler warnings about cached_has_bits being unused
1446 (void) cached_has_bits;
1447
1448 cached_has_bits = _impl_._has_bits_[0];
1449 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1450 _impl_.eps_optimal_absolute_ = 1e-06;
1451 _impl_.eps_optimal_relative_ = 1e-06;
1452 _impl_.eps_primal_infeasible_ = 1e-08;
1453 _impl_.optimality_norm_ = 2;
1454 _impl_.iteration_limit_ = 2147483647;
1455 _impl_.eps_dual_infeasible_ = 1e-08;
1456 _impl_.time_sec_limit_ = std::numeric_limits<double>::infinity();
1457 _impl_.kkt_matrix_pass_limit_ = std::numeric_limits<double>::infinity();
1458 }
1460 _impl_._has_bits_.Clear();
1461 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1462}
1463
1464#if defined(PROTOBUF_CUSTOM_VTABLE)
1465::uint8_t* PROTOBUF_NONNULL TerminationCriteria::_InternalSerialize(
1466 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1467 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1468 const TerminationCriteria& this_ = static_cast<const TerminationCriteria&>(base);
1469#else // PROTOBUF_CUSTOM_VTABLE
1470::uint8_t* PROTOBUF_NONNULL TerminationCriteria::_InternalSerialize(
1471 ::uint8_t* PROTOBUF_NONNULL target,
1472 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
1473 const TerminationCriteria& this_ = *this;
1474#endif // PROTOBUF_CUSTOM_VTABLE
1475 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1476 this_.CheckHasBitConsistency();
1477 }
1478 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.TerminationCriteria)
1479 ::uint32_t cached_has_bits = 0;
1480 (void)cached_has_bits;
1481
1482 cached_has_bits = this_._impl_._has_bits_[0];
1483 // optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
1484 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1485 target = stream->EnsureSpace(target);
1486 target = ::_pbi::WireFormatLite::WriteEnumToArray(
1487 1, this_._internal_optimality_norm(), target);
1488 }
1489
1490 // optional double eps_optimal_absolute = 2 [default = 1e-06, deprecated = true];
1491 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1492 target = stream->EnsureSpace(target);
1493 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1494 2, this_._internal_eps_optimal_absolute(), target);
1495 }
1496
1497 // optional double eps_optimal_relative = 3 [default = 1e-06, deprecated = true];
1498 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1499 target = stream->EnsureSpace(target);
1500 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1501 3, this_._internal_eps_optimal_relative(), target);
1502 }
1503
1504 // optional double eps_primal_infeasible = 4 [default = 1e-08];
1505 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1506 target = stream->EnsureSpace(target);
1507 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1508 4, this_._internal_eps_primal_infeasible(), target);
1509 }
1510
1511 // optional double eps_dual_infeasible = 5 [default = 1e-08];
1512 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1513 target = stream->EnsureSpace(target);
1514 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1515 5, this_._internal_eps_dual_infeasible(), target);
1516 }
1517
1518 // optional double time_sec_limit = 6 [default = inf];
1519 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1520 target = stream->EnsureSpace(target);
1521 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1522 6, this_._internal_time_sec_limit(), target);
1523 }
1524
1525 // optional int32 iteration_limit = 7 [default = 2147483647];
1526 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1527 target =
1528 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
1529 stream, this_._internal_iteration_limit(), target);
1530 }
1531
1532 // optional double kkt_matrix_pass_limit = 8 [default = inf];
1533 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1534 target = stream->EnsureSpace(target);
1535 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1536 8, this_._internal_kkt_matrix_pass_limit(), target);
1537 }
1538
1539 switch (this_.optimality_criteria_case()) {
1541 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1542 9, *this_._impl_.optimality_criteria_.simple_optimality_criteria_, this_._impl_.optimality_criteria_.simple_optimality_criteria_->GetCachedSize(), target,
1543 stream);
1544 break;
1545 }
1547 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1548 10, *this_._impl_.optimality_criteria_.detailed_optimality_criteria_, this_._impl_.optimality_criteria_.detailed_optimality_criteria_->GetCachedSize(), target,
1549 stream);
1550 break;
1551 }
1552 default:
1553 break;
1554 }
1555 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1556 target =
1557 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1558 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1559 }
1560 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.TerminationCriteria)
1561 return target;
1562}
1563
1564#if defined(PROTOBUF_CUSTOM_VTABLE)
1565::size_t TerminationCriteria::ByteSizeLong(const MessageLite& base) {
1566 const TerminationCriteria& this_ = static_cast<const TerminationCriteria&>(base);
1567#else // PROTOBUF_CUSTOM_VTABLE
1568::size_t TerminationCriteria::ByteSizeLong() const {
1569 const TerminationCriteria& this_ = *this;
1570#endif // PROTOBUF_CUSTOM_VTABLE
1571 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.TerminationCriteria)
1572 ::size_t total_size = 0;
1573
1574 ::uint32_t cached_has_bits = 0;
1575 // Prevent compiler warnings about cached_has_bits being unused
1576 (void)cached_has_bits;
1577
1578 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1579 cached_has_bits = this_._impl_._has_bits_[0];
1580 total_size += ::absl::popcount(0x000000e7U & cached_has_bits) * 9;
1581 if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
1582 // optional .operations_research.pdlp.OptimalityNorm optimality_norm = 1 [default = OPTIMALITY_NORM_L2];
1583 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1584 total_size += 1 +
1585 ::_pbi::WireFormatLite::EnumSize(this_._internal_optimality_norm());
1586 }
1587 // optional int32 iteration_limit = 7 [default = 2147483647];
1588 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1589 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1590 this_._internal_iteration_limit());
1591 }
1592 }
1593 switch (this_.optimality_criteria_case()) {
1594 // .operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria simple_optimality_criteria = 9;
1596 total_size += 1 +
1597 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.optimality_criteria_.simple_optimality_criteria_);
1598 break;
1599 }
1600 // .operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria detailed_optimality_criteria = 10;
1602 total_size += 1 +
1603 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.optimality_criteria_.detailed_optimality_criteria_);
1604 break;
1605 }
1607 break;
1608 }
1609 }
1610 return this_.MaybeComputeUnknownFieldsSize(total_size,
1611 &this_._impl_._cached_size_);
1612}
1613
1614void TerminationCriteria::MergeImpl(::google::protobuf::MessageLite& to_msg,
1615 const ::google::protobuf::MessageLite& from_msg) {
1616 auto* const _this =
1617 static_cast<TerminationCriteria*>(&to_msg);
1618 auto& from = static_cast<const TerminationCriteria&>(from_msg);
1619 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1620 from.CheckHasBitConsistency();
1621 }
1622 ::google::protobuf::Arena* arena = _this->GetArena();
1623 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.TerminationCriteria)
1624 ABSL_DCHECK_NE(&from, _this);
1625 ::uint32_t cached_has_bits = 0;
1626 (void)cached_has_bits;
1627
1628 cached_has_bits = from._impl_._has_bits_[0];
1629 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
1630 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1631 _this->_impl_.eps_optimal_absolute_ = from._impl_.eps_optimal_absolute_;
1632 }
1633 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1634 _this->_impl_.eps_optimal_relative_ = from._impl_.eps_optimal_relative_;
1635 }
1636 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
1637 _this->_impl_.eps_primal_infeasible_ = from._impl_.eps_primal_infeasible_;
1638 }
1639 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
1640 _this->_impl_.optimality_norm_ = from._impl_.optimality_norm_;
1641 }
1642 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
1643 _this->_impl_.iteration_limit_ = from._impl_.iteration_limit_;
1644 }
1645 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
1646 _this->_impl_.eps_dual_infeasible_ = from._impl_.eps_dual_infeasible_;
1647 }
1648 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
1649 _this->_impl_.time_sec_limit_ = from._impl_.time_sec_limit_;
1650 }
1651 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
1652 _this->_impl_.kkt_matrix_pass_limit_ = from._impl_.kkt_matrix_pass_limit_;
1653 }
1654 }
1655 _this->_impl_._has_bits_[0] |= cached_has_bits;
1656 if (const uint32_t oneof_from_case =
1657 from._impl_._oneof_case_[0]) {
1658 const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
1659 const bool oneof_needs_init = oneof_to_case != oneof_from_case;
1660 if (oneof_needs_init) {
1661 if (oneof_to_case != 0) {
1662 _this->clear_optimality_criteria();
1663 }
1664 _this->_impl_._oneof_case_[0] = oneof_from_case;
1665 }
1666
1667 switch (oneof_from_case) {
1669 if (oneof_needs_init) {
1670 _this->_impl_.optimality_criteria_.simple_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.simple_optimality_criteria_);
1671 } else {
1672 _this->_impl_.optimality_criteria_.simple_optimality_criteria_->MergeFrom(*from._impl_.optimality_criteria_.simple_optimality_criteria_);
1673 }
1674 break;
1675 }
1677 if (oneof_needs_init) {
1678 _this->_impl_.optimality_criteria_.detailed_optimality_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1679 } else {
1680 _this->_impl_.optimality_criteria_.detailed_optimality_criteria_->MergeFrom(*from._impl_.optimality_criteria_.detailed_optimality_criteria_);
1681 }
1682 break;
1683 }
1685 break;
1686 }
1687 }
1688 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1689 from._internal_metadata_);
1690}
1691
1693 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.TerminationCriteria)
1694 if (&from == this) return;
1696 MergeFrom(from);
1697}
1698
1699
1700void TerminationCriteria::InternalSwap(TerminationCriteria* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1701 using ::std::swap;
1702 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1703 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1704 ::google::protobuf::internal::memswap<
1705 PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.kkt_matrix_pass_limit_)
1706 + sizeof(TerminationCriteria::_impl_.kkt_matrix_pass_limit_)
1707 - PROTOBUF_FIELD_OFFSET(TerminationCriteria, _impl_.eps_optimal_absolute_)>(
1708 reinterpret_cast<char*>(&_impl_.eps_optimal_absolute_),
1709 reinterpret_cast<char*>(&other->_impl_.eps_optimal_absolute_));
1710 swap(_impl_.optimality_criteria_, other->_impl_.optimality_criteria_);
1711 swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
1712}
1713
1714::google::protobuf::Metadata TerminationCriteria::GetMetadata() const {
1715 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1716}
1717// ===================================================================
1718
1720 public:
1721 using HasBits =
1722 decltype(::std::declval<AdaptiveLinesearchParams>()._impl_._has_bits_);
1723 static constexpr ::int32_t kHasBitsOffset =
1724 8 * PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_._has_bits_);
1726
1727AdaptiveLinesearchParams::AdaptiveLinesearchParams(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1728#if defined(PROTOBUF_CUSTOM_VTABLE)
1729 : ::google::protobuf::Message(arena, AdaptiveLinesearchParams_class_data_.base()) {
1730#else // PROTOBUF_CUSTOM_VTABLE
1731 : ::google::protobuf::Message(arena) {
1732#endif // PROTOBUF_CUSTOM_VTABLE
1733 SharedCtor(arena);
1734 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.AdaptiveLinesearchParams)
1735}
1737 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AdaptiveLinesearchParams& from)
1738#if defined(PROTOBUF_CUSTOM_VTABLE)
1739 : ::google::protobuf::Message(arena, AdaptiveLinesearchParams_class_data_.base()),
1740#else // PROTOBUF_CUSTOM_VTABLE
1741 : ::google::protobuf::Message(arena),
1742#endif // PROTOBUF_CUSTOM_VTABLE
1743 _impl_(from._impl_) {
1744 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1745 from._internal_metadata_);
1746}
1747PROTOBUF_NDEBUG_INLINE AdaptiveLinesearchParams::Impl_::Impl_(
1748 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
1749 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1750 : _cached_size_{0},
1751 step_size_reduction_exponent_{0.3},
1752 step_size_growth_exponent_{0.6} {}
1753
1754inline void AdaptiveLinesearchParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
1755 new (&_impl_) Impl_(internal_visibility(), arena);
1756}
1758 // @@protoc_insertion_point(destructor:operations_research.pdlp.AdaptiveLinesearchParams)
1759 SharedDtor(*this);
1760}
1761inline void AdaptiveLinesearchParams::SharedDtor(MessageLite& self) {
1762 AdaptiveLinesearchParams& this_ = static_cast<AdaptiveLinesearchParams&>(self);
1763 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1764 this_.CheckHasBitConsistency();
1765 }
1766 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
1767 ABSL_DCHECK(this_.GetArena() == nullptr);
1768 this_._impl_.~Impl_();
1769}
1770
1771inline void* PROTOBUF_NONNULL AdaptiveLinesearchParams::PlacementNew_(
1772 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
1773 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
1774 return ::new (mem) AdaptiveLinesearchParams(arena);
1775}
1776constexpr auto AdaptiveLinesearchParams::InternalNewImpl_() {
1777 return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AdaptiveLinesearchParams),
1778 alignof(AdaptiveLinesearchParams));
1779}
1781 return ::google::protobuf::internal::ClassDataFull{
1782 ::google::protobuf::internal::ClassData{
1784 &_table_.header,
1785 nullptr, // OnDemandRegisterArenaDtor
1786 nullptr, // IsInitialized
1787 &AdaptiveLinesearchParams::MergeImpl,
1788 ::google::protobuf::Message::GetNewImpl<AdaptiveLinesearchParams>(),
1789#if defined(PROTOBUF_CUSTOM_VTABLE)
1790 &AdaptiveLinesearchParams::SharedDtor,
1791 ::google::protobuf::Message::GetClearImpl<AdaptiveLinesearchParams>(), &AdaptiveLinesearchParams::ByteSizeLong,
1793#endif // PROTOBUF_CUSTOM_VTABLE
1794 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_._cached_size_),
1795 false,
1796 },
1797 &AdaptiveLinesearchParams::kDescriptorMethods,
1799 nullptr, // tracker
1800 };
1801}
1802
1803PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
1804 ::google::protobuf::internal::ClassDataFull AdaptiveLinesearchParams_class_data_ =
1806
1807PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
1808AdaptiveLinesearchParams::GetClassData() const {
1809 ::google::protobuf::internal::PrefetchToLocalCache(&AdaptiveLinesearchParams_class_data_);
1810 ::google::protobuf::internal::PrefetchToLocalCache(AdaptiveLinesearchParams_class_data_.tc_table);
1812}
1813PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1814const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
1815AdaptiveLinesearchParams::_table_ = {
1816 {
1817 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_._has_bits_),
1818 0, // no _extensions_
1819 2, 8, // max_field_number, fast_idx_mask
1820 offsetof(decltype(_table_), field_lookup_table),
1821 4294967292, // skipmap
1822 offsetof(decltype(_table_), field_entries),
1823 2, // num_field_entries
1824 0, // num_aux_entries
1825 offsetof(decltype(_table_), field_names), // no aux_entries
1827 nullptr, // post_loop_handler
1828 ::_pbi::TcParser::GenericFallback, // fallback
1829 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1830 ::_pbi::TcParser::GetTable<::operations_research::pdlp::AdaptiveLinesearchParams>(), // to_prefetch
1831 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
1832 }, {{
1833 // optional double step_size_growth_exponent = 2 [default = 0.6];
1834 {::_pbi::TcParser::FastF64S1,
1835 {17, 1, 0,
1836 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_growth_exponent_)}},
1837 // optional double step_size_reduction_exponent = 1 [default = 0.3];
1838 {::_pbi::TcParser::FastF64S1,
1839 {9, 0, 0,
1840 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_reduction_exponent_)}},
1841 }}, {{
1842 65535, 65535
1843 }}, {{
1844 // optional double step_size_reduction_exponent = 1 [default = 0.3];
1845 {PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_reduction_exponent_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1846 // optional double step_size_growth_exponent = 2 [default = 0.6];
1847 {PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_growth_exponent_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
1848 }},
1849 // no aux_entries
1850 {{
1851 }},
1852};
1853PROTOBUF_NOINLINE void AdaptiveLinesearchParams::Clear() {
1854// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.AdaptiveLinesearchParams)
1855 ::google::protobuf::internal::TSanWrite(&_impl_);
1856 ::uint32_t cached_has_bits = 0;
1857 // Prevent compiler warnings about cached_has_bits being unused
1858 (void) cached_has_bits;
1859
1860 cached_has_bits = _impl_._has_bits_[0];
1861 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
1862 _impl_.step_size_reduction_exponent_ = 0.3;
1863 _impl_.step_size_growth_exponent_ = 0.6;
1864 }
1865 _impl_._has_bits_.Clear();
1866 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
1867}
1868
1869#if defined(PROTOBUF_CUSTOM_VTABLE)
1870::uint8_t* PROTOBUF_NONNULL AdaptiveLinesearchParams::_InternalSerialize(
1871 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
1872 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
1873 const AdaptiveLinesearchParams& this_ = static_cast<const AdaptiveLinesearchParams&>(base);
1874#else // PROTOBUF_CUSTOM_VTABLE
1875::uint8_t* PROTOBUF_NONNULL AdaptiveLinesearchParams::_InternalSerialize(
1876 ::uint8_t* PROTOBUF_NONNULL target,
1877 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
1878 const AdaptiveLinesearchParams& this_ = *this;
1879#endif // PROTOBUF_CUSTOM_VTABLE
1880 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1881 this_.CheckHasBitConsistency();
1882 }
1883 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.AdaptiveLinesearchParams)
1884 ::uint32_t cached_has_bits = 0;
1885 (void)cached_has_bits;
1886
1887 cached_has_bits = this_._impl_._has_bits_[0];
1888 // optional double step_size_reduction_exponent = 1 [default = 0.3];
1889 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1890 target = stream->EnsureSpace(target);
1891 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1892 1, this_._internal_step_size_reduction_exponent(), target);
1893 }
1894
1895 // optional double step_size_growth_exponent = 2 [default = 0.6];
1896 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1897 target = stream->EnsureSpace(target);
1898 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
1899 2, this_._internal_step_size_growth_exponent(), target);
1900 }
1901
1902 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1903 target =
1904 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
1905 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
1906 }
1907 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.AdaptiveLinesearchParams)
1908 return target;
1909}
1910
1911#if defined(PROTOBUF_CUSTOM_VTABLE)
1913 const AdaptiveLinesearchParams& this_ = static_cast<const AdaptiveLinesearchParams&>(base);
1914#else // PROTOBUF_CUSTOM_VTABLE
1916 const AdaptiveLinesearchParams& this_ = *this;
1917#endif // PROTOBUF_CUSTOM_VTABLE
1918 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.AdaptiveLinesearchParams)
1919 ::size_t total_size = 0;
1920
1921 ::uint32_t cached_has_bits = 0;
1922 // Prevent compiler warnings about cached_has_bits being unused
1923 (void)cached_has_bits;
1924
1925 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1926 cached_has_bits = this_._impl_._has_bits_[0];
1927 total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 9;
1928 return this_.MaybeComputeUnknownFieldsSize(total_size,
1929 &this_._impl_._cached_size_);
1930}
1931
1932void AdaptiveLinesearchParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
1933 const ::google::protobuf::MessageLite& from_msg) {
1934 auto* const _this =
1935 static_cast<AdaptiveLinesearchParams*>(&to_msg);
1936 auto& from = static_cast<const AdaptiveLinesearchParams&>(from_msg);
1937 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
1938 from.CheckHasBitConsistency();
1939 }
1940 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.AdaptiveLinesearchParams)
1941 ABSL_DCHECK_NE(&from, _this);
1942 ::uint32_t cached_has_bits = 0;
1943 (void)cached_has_bits;
1944
1945 cached_has_bits = from._impl_._has_bits_[0];
1946 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
1947 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
1948 _this->_impl_.step_size_reduction_exponent_ = from._impl_.step_size_reduction_exponent_;
1949 }
1950 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
1951 _this->_impl_.step_size_growth_exponent_ = from._impl_.step_size_growth_exponent_;
1952 }
1953 }
1954 _this->_impl_._has_bits_[0] |= cached_has_bits;
1955 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
1956 from._internal_metadata_);
1957}
1958
1959void AdaptiveLinesearchParams::CopyFrom(const AdaptiveLinesearchParams& from) {
1960 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.AdaptiveLinesearchParams)
1961 if (&from == this) return;
1962 Clear();
1964}
1965
1966
1967void AdaptiveLinesearchParams::InternalSwap(AdaptiveLinesearchParams* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
1968 using ::std::swap;
1969 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1970 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
1971 ::google::protobuf::internal::memswap<
1972 PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_growth_exponent_)
1973 + sizeof(AdaptiveLinesearchParams::_impl_.step_size_growth_exponent_)
1974 - PROTOBUF_FIELD_OFFSET(AdaptiveLinesearchParams, _impl_.step_size_reduction_exponent_)>(
1975 reinterpret_cast<char*>(&_impl_.step_size_reduction_exponent_),
1976 reinterpret_cast<char*>(&other->_impl_.step_size_reduction_exponent_));
1977}
1978
1979::google::protobuf::Metadata AdaptiveLinesearchParams::GetMetadata() const {
1980 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
1981}
1982// ===================================================================
1985 public:
1986 using HasBits =
1987 decltype(::std::declval<MalitskyPockParams>()._impl_._has_bits_);
1988 static constexpr ::int32_t kHasBitsOffset =
1989 8 * PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_._has_bits_);
1990};
1992MalitskyPockParams::MalitskyPockParams(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
1993#if defined(PROTOBUF_CUSTOM_VTABLE)
1994 : ::google::protobuf::Message(arena, MalitskyPockParams_class_data_.base()) {
1995#else // PROTOBUF_CUSTOM_VTABLE
1996 : ::google::protobuf::Message(arena) {
1997#endif // PROTOBUF_CUSTOM_VTABLE
1998 SharedCtor(arena);
1999 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.MalitskyPockParams)
2000}
2002 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MalitskyPockParams& from)
2003#if defined(PROTOBUF_CUSTOM_VTABLE)
2004 : ::google::protobuf::Message(arena, MalitskyPockParams_class_data_.base()),
2005#else // PROTOBUF_CUSTOM_VTABLE
2006 : ::google::protobuf::Message(arena),
2007#endif // PROTOBUF_CUSTOM_VTABLE
2008 _impl_(from._impl_) {
2009 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2010 from._internal_metadata_);
2011}
2012PROTOBUF_NDEBUG_INLINE MalitskyPockParams::Impl_::Impl_(
2013 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2014 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2015 : _cached_size_{0},
2016 step_size_downscaling_factor_{0.7},
2017 linesearch_contraction_factor_{0.99},
2018 step_size_interpolation_{1} {}
2019
2020inline void MalitskyPockParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2021 new (&_impl_) Impl_(internal_visibility(), arena);
2022}
2024 // @@protoc_insertion_point(destructor:operations_research.pdlp.MalitskyPockParams)
2025 SharedDtor(*this);
2026}
2027inline void MalitskyPockParams::SharedDtor(MessageLite& self) {
2028 MalitskyPockParams& this_ = static_cast<MalitskyPockParams&>(self);
2029 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2030 this_.CheckHasBitConsistency();
2031 }
2032 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2033 ABSL_DCHECK(this_.GetArena() == nullptr);
2034 this_._impl_.~Impl_();
2035}
2036
2037inline void* PROTOBUF_NONNULL MalitskyPockParams::PlacementNew_(
2038 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
2039 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2040 return ::new (mem) MalitskyPockParams(arena);
2041}
2042constexpr auto MalitskyPockParams::InternalNewImpl_() {
2043 return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MalitskyPockParams),
2044 alignof(MalitskyPockParams));
2045}
2047 return ::google::protobuf::internal::ClassDataFull{
2048 ::google::protobuf::internal::ClassData{
2050 &_table_.header,
2051 nullptr, // OnDemandRegisterArenaDtor
2052 nullptr, // IsInitialized
2053 &MalitskyPockParams::MergeImpl,
2054 ::google::protobuf::Message::GetNewImpl<MalitskyPockParams>(),
2055#if defined(PROTOBUF_CUSTOM_VTABLE)
2056 &MalitskyPockParams::SharedDtor,
2057 ::google::protobuf::Message::GetClearImpl<MalitskyPockParams>(), &MalitskyPockParams::ByteSizeLong,
2059#endif // PROTOBUF_CUSTOM_VTABLE
2060 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_._cached_size_),
2061 false,
2062 },
2063 &MalitskyPockParams::kDescriptorMethods,
2065 nullptr, // tracker
2066 };
2067}
2068
2069PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2070 ::google::protobuf::internal::ClassDataFull MalitskyPockParams_class_data_ =
2072
2073PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2074MalitskyPockParams::GetClassData() const {
2075 ::google::protobuf::internal::PrefetchToLocalCache(&MalitskyPockParams_class_data_);
2076 ::google::protobuf::internal::PrefetchToLocalCache(MalitskyPockParams_class_data_.tc_table);
2077 return MalitskyPockParams_class_data_.base();
2078}
2079PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2080const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
2081MalitskyPockParams::_table_ = {
2082 {
2083 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_._has_bits_),
2084 0, // no _extensions_
2085 3, 24, // max_field_number, fast_idx_mask
2086 offsetof(decltype(_table_), field_lookup_table),
2087 4294967288, // skipmap
2088 offsetof(decltype(_table_), field_entries),
2089 3, // num_field_entries
2090 0, // num_aux_entries
2091 offsetof(decltype(_table_), field_names), // no aux_entries
2093 nullptr, // post_loop_handler
2094 ::_pbi::TcParser::GenericFallback, // fallback
2095 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2096 ::_pbi::TcParser::GetTable<::operations_research::pdlp::MalitskyPockParams>(), // to_prefetch
2097 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
2098 }, {{
2099 {::_pbi::TcParser::MiniParse, {}},
2100 // optional double step_size_downscaling_factor = 1 [default = 0.7];
2101 {::_pbi::TcParser::FastF64S1,
2102 {9, 0, 0,
2103 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_downscaling_factor_)}},
2104 // optional double linesearch_contraction_factor = 2 [default = 0.99];
2105 {::_pbi::TcParser::FastF64S1,
2106 {17, 1, 0,
2107 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.linesearch_contraction_factor_)}},
2108 // optional double step_size_interpolation = 3 [default = 1];
2109 {::_pbi::TcParser::FastF64S1,
2110 {25, 2, 0,
2111 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_interpolation_)}},
2112 }}, {{
2113 65535, 65535
2114 }}, {{
2115 // optional double step_size_downscaling_factor = 1 [default = 0.7];
2116 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_downscaling_factor_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2117 // optional double linesearch_contraction_factor = 2 [default = 0.99];
2118 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.linesearch_contraction_factor_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2119 // optional double step_size_interpolation = 3 [default = 1];
2120 {PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_interpolation_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2121 }},
2122 // no aux_entries
2123 {{
2124 }},
2125};
2126PROTOBUF_NOINLINE void MalitskyPockParams::Clear() {
2127// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.MalitskyPockParams)
2128 ::google::protobuf::internal::TSanWrite(&_impl_);
2129 ::uint32_t cached_has_bits = 0;
2130 // Prevent compiler warnings about cached_has_bits being unused
2131 (void) cached_has_bits;
2132
2133 cached_has_bits = _impl_._has_bits_[0];
2134 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
2135 _impl_.step_size_downscaling_factor_ = 0.7;
2136 _impl_.linesearch_contraction_factor_ = 0.99;
2137 _impl_.step_size_interpolation_ = 1;
2138 }
2139 _impl_._has_bits_.Clear();
2140 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2141}
2142
2143#if defined(PROTOBUF_CUSTOM_VTABLE)
2144::uint8_t* PROTOBUF_NONNULL MalitskyPockParams::_InternalSerialize(
2145 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2146 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2147 const MalitskyPockParams& this_ = static_cast<const MalitskyPockParams&>(base);
2148#else // PROTOBUF_CUSTOM_VTABLE
2149::uint8_t* PROTOBUF_NONNULL MalitskyPockParams::_InternalSerialize(
2150 ::uint8_t* PROTOBUF_NONNULL target,
2151 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
2152 const MalitskyPockParams& this_ = *this;
2153#endif // PROTOBUF_CUSTOM_VTABLE
2154 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2155 this_.CheckHasBitConsistency();
2156 }
2157 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.MalitskyPockParams)
2158 ::uint32_t cached_has_bits = 0;
2159 (void)cached_has_bits;
2160
2161 cached_has_bits = this_._impl_._has_bits_[0];
2162 // optional double step_size_downscaling_factor = 1 [default = 0.7];
2163 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2164 target = stream->EnsureSpace(target);
2165 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2166 1, this_._internal_step_size_downscaling_factor(), target);
2167 }
2168
2169 // optional double linesearch_contraction_factor = 2 [default = 0.99];
2170 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2171 target = stream->EnsureSpace(target);
2172 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2173 2, this_._internal_linesearch_contraction_factor(), target);
2174 }
2175
2176 // optional double step_size_interpolation = 3 [default = 1];
2177 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2178 target = stream->EnsureSpace(target);
2179 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
2180 3, this_._internal_step_size_interpolation(), target);
2181 }
2182
2183 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2184 target =
2185 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2186 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2187 }
2188 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.MalitskyPockParams)
2189 return target;
2190}
2191
2192#if defined(PROTOBUF_CUSTOM_VTABLE)
2193::size_t MalitskyPockParams::ByteSizeLong(const MessageLite& base) {
2194 const MalitskyPockParams& this_ = static_cast<const MalitskyPockParams&>(base);
2195#else // PROTOBUF_CUSTOM_VTABLE
2196::size_t MalitskyPockParams::ByteSizeLong() const {
2197 const MalitskyPockParams& this_ = *this;
2198#endif // PROTOBUF_CUSTOM_VTABLE
2199 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.MalitskyPockParams)
2200 ::size_t total_size = 0;
2202 ::uint32_t cached_has_bits = 0;
2203 // Prevent compiler warnings about cached_has_bits being unused
2204 (void)cached_has_bits;
2205
2206 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2207 cached_has_bits = this_._impl_._has_bits_[0];
2208 total_size += ::absl::popcount(0x00000007U & cached_has_bits) * 9;
2209 return this_.MaybeComputeUnknownFieldsSize(total_size,
2210 &this_._impl_._cached_size_);
2211}
2212
2213void MalitskyPockParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
2214 const ::google::protobuf::MessageLite& from_msg) {
2215 auto* const _this =
2216 static_cast<MalitskyPockParams*>(&to_msg);
2217 auto& from = static_cast<const MalitskyPockParams&>(from_msg);
2218 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2219 from.CheckHasBitConsistency();
2220 }
2221 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.MalitskyPockParams)
2222 ABSL_DCHECK_NE(&from, _this);
2223 ::uint32_t cached_has_bits = 0;
2224 (void)cached_has_bits;
2225
2226 cached_has_bits = from._impl_._has_bits_[0];
2227 if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
2228 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2229 _this->_impl_.step_size_downscaling_factor_ = from._impl_.step_size_downscaling_factor_;
2230 }
2231 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2232 _this->_impl_.linesearch_contraction_factor_ = from._impl_.linesearch_contraction_factor_;
2233 }
2234 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2235 _this->_impl_.step_size_interpolation_ = from._impl_.step_size_interpolation_;
2236 }
2237 }
2238 _this->_impl_._has_bits_[0] |= cached_has_bits;
2239 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2240 from._internal_metadata_);
2241}
2242
2243void MalitskyPockParams::CopyFrom(const MalitskyPockParams& from) {
2244 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.MalitskyPockParams)
2245 if (&from == this) return;
2246 Clear();
2247 MergeFrom(from);
2249
2250
2251void MalitskyPockParams::InternalSwap(MalitskyPockParams* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
2252 using ::std::swap;
2253 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2254 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2255 ::google::protobuf::internal::memswap<
2256 PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_interpolation_)
2257 + sizeof(MalitskyPockParams::_impl_.step_size_interpolation_)
2258 - PROTOBUF_FIELD_OFFSET(MalitskyPockParams, _impl_.step_size_downscaling_factor_)>(
2259 reinterpret_cast<char*>(&_impl_.step_size_downscaling_factor_),
2260 reinterpret_cast<char*>(&other->_impl_.step_size_downscaling_factor_));
2261}
2262
2263::google::protobuf::Metadata MalitskyPockParams::GetMetadata() const {
2264 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
2265}
2266// ===================================================================
2267
2269 public:
2270 using HasBits =
2271 decltype(::std::declval<PrimalDualHybridGradientParams_PresolveOptions>()._impl_._has_bits_);
2272 static constexpr ::int32_t kHasBitsOffset =
2273 8 * PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_._has_bits_);
2275
2277 ::google::protobuf::internal::TSanWrite(&_impl_);
2278 if (_impl_.glop_parameters_ != nullptr) _impl_.glop_parameters_->Clear();
2279 ClearHasBit(_impl_._has_bits_[0],
2280 0x00000001U);
2281}
2283#if defined(PROTOBUF_CUSTOM_VTABLE)
2284 : ::google::protobuf::Message(arena, PrimalDualHybridGradientParams_PresolveOptions_class_data_.base()) {
2285#else // PROTOBUF_CUSTOM_VTABLE
2286 : ::google::protobuf::Message(arena) {
2287#endif // PROTOBUF_CUSTOM_VTABLE
2288 SharedCtor(arena);
2289 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2290}
2291PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
2292 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2293 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
2294 [[maybe_unused]] const ::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions& from_msg)
2295 : _has_bits_{from._has_bits_},
2296 _cached_size_{0} {}
2297
2299 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2301#if defined(PROTOBUF_CUSTOM_VTABLE)
2302 : ::google::protobuf::Message(arena, PrimalDualHybridGradientParams_PresolveOptions_class_data_.base()) {
2303#else // PROTOBUF_CUSTOM_VTABLE
2304 : ::google::protobuf::Message(arena) {
2305#endif // PROTOBUF_CUSTOM_VTABLE
2307 (void)_this;
2308 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2309 from._internal_metadata_);
2310 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2311 ::uint32_t cached_has_bits = _impl_._has_bits_[0];
2312 _impl_.glop_parameters_ = (CheckHasBit(cached_has_bits, 0x00000001U))
2313 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.glop_parameters_)
2314 : nullptr;
2315 _impl_.use_glop_ = from._impl_.use_glop_;
2316
2317 // @@protoc_insertion_point(copy_constructor:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2318}
2319PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams_PresolveOptions::Impl_::Impl_(
2320 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2321 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2322 : _cached_size_{0} {}
2323
2324inline void PrimalDualHybridGradientParams_PresolveOptions::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2325 new (&_impl_) Impl_(internal_visibility(), arena);
2326 ::memset(reinterpret_cast<char*>(&_impl_) +
2327 offsetof(Impl_, glop_parameters_),
2328 0,
2329 offsetof(Impl_, use_glop_) -
2330 offsetof(Impl_, glop_parameters_) +
2331 sizeof(Impl_::use_glop_));
2332}
2334 // @@protoc_insertion_point(destructor:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2335 SharedDtor(*this);
2336}
2337inline void PrimalDualHybridGradientParams_PresolveOptions::SharedDtor(MessageLite& self) {
2339 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2340 this_.CheckHasBitConsistency();
2341 }
2342 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2343 ABSL_DCHECK(this_.GetArena() == nullptr);
2344 delete this_._impl_.glop_parameters_;
2345 this_._impl_.~Impl_();
2346}
2347
2348inline void* PROTOBUF_NONNULL PrimalDualHybridGradientParams_PresolveOptions::PlacementNew_(
2349 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
2350 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2351 return ::new (mem) PrimalDualHybridGradientParams_PresolveOptions(arena);
2352}
2353constexpr auto PrimalDualHybridGradientParams_PresolveOptions::InternalNewImpl_() {
2354 return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PrimalDualHybridGradientParams_PresolveOptions),
2355 alignof(PrimalDualHybridGradientParams_PresolveOptions));
2356}
2358 return ::google::protobuf::internal::ClassDataFull{
2359 ::google::protobuf::internal::ClassData{
2361 &_table_.header,
2362 nullptr, // OnDemandRegisterArenaDtor
2363 nullptr, // IsInitialized
2364 &PrimalDualHybridGradientParams_PresolveOptions::MergeImpl,
2365 ::google::protobuf::Message::GetNewImpl<PrimalDualHybridGradientParams_PresolveOptions>(),
2366#if defined(PROTOBUF_CUSTOM_VTABLE)
2367 &PrimalDualHybridGradientParams_PresolveOptions::SharedDtor,
2368 ::google::protobuf::Message::GetClearImpl<PrimalDualHybridGradientParams_PresolveOptions>(), &PrimalDualHybridGradientParams_PresolveOptions::ByteSizeLong,
2370#endif // PROTOBUF_CUSTOM_VTABLE
2371 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_._cached_size_),
2372 false,
2373 },
2374 &PrimalDualHybridGradientParams_PresolveOptions::kDescriptorMethods,
2376 nullptr, // tracker
2377 };
2378}
2379
2380PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2381 ::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_PresolveOptions_class_data_ =
2383
2384PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2385PrimalDualHybridGradientParams_PresolveOptions::GetClassData() const {
2386 ::google::protobuf::internal::PrefetchToLocalCache(&PrimalDualHybridGradientParams_PresolveOptions_class_data_);
2387 ::google::protobuf::internal::PrefetchToLocalCache(PrimalDualHybridGradientParams_PresolveOptions_class_data_.tc_table);
2389}
2390PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2391const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
2392PrimalDualHybridGradientParams_PresolveOptions::_table_ = {
2393 {
2394 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_._has_bits_),
2395 0, // no _extensions_
2396 2, 8, // max_field_number, fast_idx_mask
2397 offsetof(decltype(_table_), field_lookup_table),
2398 4294967292, // skipmap
2399 offsetof(decltype(_table_), field_entries),
2400 2, // num_field_entries
2401 1, // num_aux_entries
2402 offsetof(decltype(_table_), aux_entries),
2404 nullptr, // post_loop_handler
2405 ::_pbi::TcParser::GenericFallback, // fallback
2406 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2407 ::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions>(), // to_prefetch
2408 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
2409 }, {{
2410 // optional .operations_research.glop.GlopParameters glop_parameters = 2;
2411 {::_pbi::TcParser::FastMtS1,
2412 {18, 0, 0,
2413 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.glop_parameters_)}},
2414 // optional bool use_glop = 1;
2415 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PrimalDualHybridGradientParams_PresolveOptions, _impl_.use_glop_), 1>(),
2416 {8, 1, 0,
2417 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.use_glop_)}},
2418 }}, {{
2419 65535, 65535
2420 }}, {{
2421 // optional bool use_glop = 1;
2422 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.use_glop_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2423 // optional .operations_research.glop.GlopParameters glop_parameters = 2;
2424 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.glop_parameters_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2425 }},
2426 {{
2427 {::_pbi::TcParser::GetTable<::operations_research::glop::GlopParameters>()},
2428 }},
2429 {{
2430 }},
2431};
2433// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2434 ::google::protobuf::internal::TSanWrite(&_impl_);
2435 ::uint32_t cached_has_bits = 0;
2436 // Prevent compiler warnings about cached_has_bits being unused
2437 (void) cached_has_bits;
2439 cached_has_bits = _impl_._has_bits_[0];
2440 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2441 ABSL_DCHECK(_impl_.glop_parameters_ != nullptr);
2442 _impl_.glop_parameters_->Clear();
2443 }
2444 _impl_.use_glop_ = false;
2445 _impl_._has_bits_.Clear();
2446 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
2447}
2448
2449#if defined(PROTOBUF_CUSTOM_VTABLE)
2451 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
2452 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
2453 const PrimalDualHybridGradientParams_PresolveOptions& this_ = static_cast<const PrimalDualHybridGradientParams_PresolveOptions&>(base);
2454#else // PROTOBUF_CUSTOM_VTABLE
2456 ::uint8_t* PROTOBUF_NONNULL target,
2457 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
2458 const PrimalDualHybridGradientParams_PresolveOptions& this_ = *this;
2459#endif // PROTOBUF_CUSTOM_VTABLE
2460 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2461 this_.CheckHasBitConsistency();
2462 }
2463 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2464 ::uint32_t cached_has_bits = 0;
2465 (void)cached_has_bits;
2466
2467 cached_has_bits = this_._impl_._has_bits_[0];
2468 // optional bool use_glop = 1;
2469 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2470 target = stream->EnsureSpace(target);
2471 target = ::_pbi::WireFormatLite::WriteBoolToArray(
2472 1, this_._internal_use_glop(), target);
2473 }
2474
2475 // optional .operations_research.glop.GlopParameters glop_parameters = 2;
2476 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2477 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2478 2, *this_._impl_.glop_parameters_, this_._impl_.glop_parameters_->GetCachedSize(), target,
2479 stream);
2480 }
2481
2482 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2483 target =
2484 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
2485 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
2486 }
2487 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2488 return target;
2489}
2490
2491#if defined(PROTOBUF_CUSTOM_VTABLE)
2493 const PrimalDualHybridGradientParams_PresolveOptions& this_ = static_cast<const PrimalDualHybridGradientParams_PresolveOptions&>(base);
2494#else // PROTOBUF_CUSTOM_VTABLE
2496 const PrimalDualHybridGradientParams_PresolveOptions& this_ = *this;
2497#endif // PROTOBUF_CUSTOM_VTABLE
2498 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2499 ::size_t total_size = 0;
2500
2501 ::uint32_t cached_has_bits = 0;
2502 // Prevent compiler warnings about cached_has_bits being unused
2503 (void)cached_has_bits;
2504
2505 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2506 cached_has_bits = this_._impl_._has_bits_[0];
2507 total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
2508 {
2509 // optional .operations_research.glop.GlopParameters glop_parameters = 2;
2510 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2511 total_size += 1 +
2512 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.glop_parameters_);
2513 }
2514 }
2515 return this_.MaybeComputeUnknownFieldsSize(total_size,
2516 &this_._impl_._cached_size_);
2517}
2518
2519void PrimalDualHybridGradientParams_PresolveOptions::MergeImpl(::google::protobuf::MessageLite& to_msg,
2520 const ::google::protobuf::MessageLite& from_msg) {
2521 auto* const _this =
2522 static_cast<PrimalDualHybridGradientParams_PresolveOptions*>(&to_msg);
2523 auto& from = static_cast<const PrimalDualHybridGradientParams_PresolveOptions&>(from_msg);
2524 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2525 from.CheckHasBitConsistency();
2526 }
2527 ::google::protobuf::Arena* arena = _this->GetArena();
2528 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2529 ABSL_DCHECK_NE(&from, _this);
2530 ::uint32_t cached_has_bits = 0;
2531 (void)cached_has_bits;
2532
2533 cached_has_bits = from._impl_._has_bits_[0];
2534 if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
2535 if (CheckHasBit(cached_has_bits, 0x00000001U)) {
2536 ABSL_DCHECK(from._impl_.glop_parameters_ != nullptr);
2537 if (_this->_impl_.glop_parameters_ == nullptr) {
2538 _this->_impl_.glop_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.glop_parameters_);
2539 } else {
2540 _this->_impl_.glop_parameters_->MergeFrom(*from._impl_.glop_parameters_);
2541 }
2542 }
2543 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2544 _this->_impl_.use_glop_ = from._impl_.use_glop_;
2545 }
2546 }
2547 _this->_impl_._has_bits_[0] |= cached_has_bits;
2548 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2549 from._internal_metadata_);
2550}
2551
2552void PrimalDualHybridGradientParams_PresolveOptions::CopyFrom(const PrimalDualHybridGradientParams_PresolveOptions& from) {
2553 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions)
2554 if (&from == this) return;
2555 Clear();
2556 MergeFrom(from);
2557}
2559
2560void PrimalDualHybridGradientParams_PresolveOptions::InternalSwap(PrimalDualHybridGradientParams_PresolveOptions* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
2561 using ::std::swap;
2562 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2563 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2564 ::google::protobuf::internal::memswap<
2565 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.use_glop_)
2567 - PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams_PresolveOptions, _impl_.glop_parameters_)>(
2568 reinterpret_cast<char*>(&_impl_.glop_parameters_),
2569 reinterpret_cast<char*>(&other->_impl_.glop_parameters_));
2570}
2571
2572::google::protobuf::Metadata PrimalDualHybridGradientParams_PresolveOptions::GetMetadata() const {
2573 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
2574}
2575// ===================================================================
2576
2577class PrimalDualHybridGradientParams::_Internal {
2578 public:
2579 using HasBits =
2580 decltype(::std::declval<PrimalDualHybridGradientParams>()._impl_._has_bits_);
2581 static constexpr ::int32_t kHasBitsOffset =
2582 8 * PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_._has_bits_);
2583};
2585PrimalDualHybridGradientParams::PrimalDualHybridGradientParams(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2586#if defined(PROTOBUF_CUSTOM_VTABLE)
2587 : ::google::protobuf::Message(arena, PrimalDualHybridGradientParams_class_data_.base()) {
2588#else // PROTOBUF_CUSTOM_VTABLE
2589 : ::google::protobuf::Message(arena) {
2590#endif // PROTOBUF_CUSTOM_VTABLE
2591 SharedCtor(arena);
2592 // @@protoc_insertion_point(arena_constructor:operations_research.pdlp.PrimalDualHybridGradientParams)
2593}
2594PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams::Impl_::Impl_(
2595 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2596 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
2597 [[maybe_unused]] const ::operations_research::pdlp::PrimalDualHybridGradientParams& from_msg)
2598 : _has_bits_{from._has_bits_},
2599 _cached_size_{0},
2600 random_projection_seeds_{visibility, arena, from.random_projection_seeds_},
2601 _random_projection_seeds_cached_byte_size_{0} {}
2602
2604 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
2605 const PrimalDualHybridGradientParams& from)
2606#if defined(PROTOBUF_CUSTOM_VTABLE)
2607 : ::google::protobuf::Message(arena, PrimalDualHybridGradientParams_class_data_.base()) {
2608#else // PROTOBUF_CUSTOM_VTABLE
2609 : ::google::protobuf::Message(arena) {
2610#endif // PROTOBUF_CUSTOM_VTABLE
2611 PrimalDualHybridGradientParams* const _this = this;
2612 (void)_this;
2613 _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
2614 from._internal_metadata_);
2615 new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2616 ::uint32_t cached_has_bits = _impl_._has_bits_[0];
2617 _impl_.termination_criteria_ = (CheckHasBit(cached_has_bits, 0x00000002U))
2618 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.termination_criteria_)
2619 : nullptr;
2620 _impl_.presolve_options_ = (CheckHasBit(cached_has_bits, 0x00000004U))
2621 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.presolve_options_)
2622 : nullptr;
2623 _impl_.adaptive_linesearch_parameters_ = (CheckHasBit(cached_has_bits, 0x00000008U))
2624 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.adaptive_linesearch_parameters_)
2625 : nullptr;
2626 _impl_.malitsky_pock_parameters_ = (CheckHasBit(cached_has_bits, 0x00000010U))
2627 ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.malitsky_pock_parameters_)
2628 : nullptr;
2629 ::memcpy(reinterpret_cast<char*>(&_impl_) +
2630 offsetof(Impl_, initial_primal_weight_),
2631 reinterpret_cast<const char*>(&from._impl_) +
2632 offsetof(Impl_, initial_primal_weight_),
2633 offsetof(Impl_, initial_step_size_scaling_) -
2634 offsetof(Impl_, initial_primal_weight_) +
2635 sizeof(Impl_::initial_step_size_scaling_));
2636
2637 // @@protoc_insertion_point(copy_constructor:operations_research.pdlp.PrimalDualHybridGradientParams)
2638}
2639PROTOBUF_NDEBUG_INLINE PrimalDualHybridGradientParams::Impl_::Impl_(
2640 [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
2641 [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
2642 : _cached_size_{0},
2643 random_projection_seeds_{visibility, arena},
2644 _random_projection_seeds_cached_byte_size_{0},
2645 num_threads_{1},
2646 major_iteration_frequency_{64},
2647 termination_check_frequency_{64},
2648 restart_strategy_{static_cast< ::operations_research::pdlp::PrimalDualHybridGradientParams_RestartStrategy >(3)},
2649 primal_weight_update_smoothing_{0.5},
2650 l_inf_ruiz_iterations_{5},
2651 linesearch_rule_{static_cast< ::operations_research::pdlp::PrimalDualHybridGradientParams_LinesearchRule >(1)},
2652 sufficient_reduction_for_restart_{0.1},
2653 necessary_reduction_for_restart_{0.9},
2654 infinite_constraint_bound_threshold_{std::numeric_limits<double>::infinity()},
2655 l2_norm_rescaling_{true},
2656 handle_some_primal_gradients_on_finite_bounds_as_residuals_{true},
2657 scheduler_type_{static_cast< ::operations_research::pdlp::SchedulerType >(1)},
2658 diagonal_qp_trust_region_solver_tolerance_{1e-08},
2659 initial_step_size_scaling_{1} {}
2660
2661inline void PrimalDualHybridGradientParams::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
2662 new (&_impl_) Impl_(internal_visibility(), arena);
2663 ::memset(reinterpret_cast<char*>(&_impl_) +
2664 offsetof(Impl_, termination_criteria_),
2665 0,
2666 offsetof(Impl_, apply_feasibility_polishing_if_solver_is_interrupted_) -
2667 offsetof(Impl_, termination_criteria_) +
2668 sizeof(Impl_::apply_feasibility_polishing_if_solver_is_interrupted_));
2669}
2671 // @@protoc_insertion_point(destructor:operations_research.pdlp.PrimalDualHybridGradientParams)
2672 SharedDtor(*this);
2673}
2674inline void PrimalDualHybridGradientParams::SharedDtor(MessageLite& self) {
2676 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
2677 this_.CheckHasBitConsistency();
2678 }
2679 this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
2680 ABSL_DCHECK(this_.GetArena() == nullptr);
2681 delete this_._impl_.termination_criteria_;
2682 delete this_._impl_.presolve_options_;
2683 delete this_._impl_.adaptive_linesearch_parameters_;
2684 delete this_._impl_.malitsky_pock_parameters_;
2685 this_._impl_.~Impl_();
2686}
2687
2688inline void* PROTOBUF_NONNULL PrimalDualHybridGradientParams::PlacementNew_(
2689 const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
2690 ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
2691 return ::new (mem) PrimalDualHybridGradientParams(arena);
2692}
2693constexpr auto PrimalDualHybridGradientParams::InternalNewImpl_() {
2694 constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
2695 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.random_projection_seeds_) +
2696 decltype(PrimalDualHybridGradientParams::_impl_.random_projection_seeds_)::
2697 InternalGetArenaOffset(
2698 ::google::protobuf::Message::internal_visibility()),
2699 });
2700 if (arena_bits.has_value()) {
2701 return ::google::protobuf::internal::MessageCreator::CopyInit(
2702 sizeof(PrimalDualHybridGradientParams), alignof(PrimalDualHybridGradientParams), *arena_bits);
2703 } else {
2704 return ::google::protobuf::internal::MessageCreator(&PrimalDualHybridGradientParams::PlacementNew_,
2705 sizeof(PrimalDualHybridGradientParams),
2706 alignof(PrimalDualHybridGradientParams));
2707 }
2708}
2710 return ::google::protobuf::internal::ClassDataFull{
2711 ::google::protobuf::internal::ClassData{
2713 &_table_.header,
2714 nullptr, // OnDemandRegisterArenaDtor
2715 nullptr, // IsInitialized
2716 &PrimalDualHybridGradientParams::MergeImpl,
2717 ::google::protobuf::Message::GetNewImpl<PrimalDualHybridGradientParams>(),
2718#if defined(PROTOBUF_CUSTOM_VTABLE)
2719 &PrimalDualHybridGradientParams::SharedDtor,
2720 ::google::protobuf::Message::GetClearImpl<PrimalDualHybridGradientParams>(), &PrimalDualHybridGradientParams::ByteSizeLong,
2722#endif // PROTOBUF_CUSTOM_VTABLE
2723 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_._cached_size_),
2724 false,
2725 },
2726 &PrimalDualHybridGradientParams::kDescriptorMethods,
2728 nullptr, // tracker
2729 };
2730}
2731
2732PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
2733 ::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_class_data_ =
2735
2736PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
2737PrimalDualHybridGradientParams::GetClassData() const {
2738 ::google::protobuf::internal::PrefetchToLocalCache(&PrimalDualHybridGradientParams_class_data_);
2739 ::google::protobuf::internal::PrefetchToLocalCache(PrimalDualHybridGradientParams_class_data_.tc_table);
2741}
2742PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2743const ::_pbi::TcParseTable<5, 29, 7, 0, 7>
2744PrimalDualHybridGradientParams::_table_ = {
2745 {
2746 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_._has_bits_),
2747 0, // no _extensions_
2748 34, 248, // max_field_number, fast_idx_mask
2749 offsetof(decltype(_table_), field_lookup_table),
2750 1601536, // skipmap
2751 offsetof(decltype(_table_), field_entries),
2752 29, // num_field_entries
2753 7, // num_aux_entries
2754 offsetof(decltype(_table_), aux_entries),
2756 nullptr, // post_loop_handler
2757 ::_pbi::TcParser::GenericFallback, // fallback
2758 #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2759 ::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams>(), // to_prefetch
2760 #endif // PROTOBUF_PREFETCH_PARSE_TABLE
2761 }, {{
2762 {::_pbi::TcParser::MiniParse, {}},
2763 // optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
2764 {::_pbi::TcParser::FastMtS1,
2765 {10, 1, 0,
2766 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.termination_criteria_)}},
2767 // optional int32 num_threads = 2 [default = 1];
2768 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PrimalDualHybridGradientParams, _impl_.num_threads_), 14>(),
2769 {16, 14, 0,
2770 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.num_threads_)}},
2771 // optional bool record_iteration_stats = 3;
2772 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PrimalDualHybridGradientParams, _impl_.record_iteration_stats_), 6>(),
2773 {24, 6, 0,
2774 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.record_iteration_stats_)}},
2775 // optional int32 major_iteration_frequency = 4 [default = 64];
2776 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PrimalDualHybridGradientParams, _impl_.major_iteration_frequency_), 15>(),
2777 {32, 15, 0,
2778 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.major_iteration_frequency_)}},
2779 // optional int32 termination_check_frequency = 5 [default = 64];
2780 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PrimalDualHybridGradientParams, _impl_.termination_check_frequency_), 16>(),
2781 {40, 16, 0,
2782 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.termination_check_frequency_)}},
2783 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
2784 {::_pbi::TcParser::FastEr0S1,
2785 {48, 17, 4,
2786 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.restart_strategy_)}},
2787 // optional double primal_weight_update_smoothing = 7 [default = 0.5];
2788 {::_pbi::TcParser::FastF64S1,
2789 {57, 18, 0,
2790 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.primal_weight_update_smoothing_)}},
2791 // optional double initial_primal_weight = 8;
2792 {::_pbi::TcParser::FastF64S1,
2793 {65, 5, 0,
2794 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.initial_primal_weight_)}},
2795 // optional int32 l_inf_ruiz_iterations = 9 [default = 5];
2796 {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PrimalDualHybridGradientParams, _impl_.l_inf_ruiz_iterations_), 19>(),
2797 {72, 19, 0,
2798 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.l_inf_ruiz_iterations_)}},
2799 // optional bool l2_norm_rescaling = 10 [default = true];
2800 {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PrimalDualHybridGradientParams, _impl_.l2_norm_rescaling_), 24>(),
2801 {80, 24, 0,
2802 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.l2_norm_rescaling_)}},
2803 // optional double sufficient_reduction_for_restart = 11 [default = 0.1];
2804 {::_pbi::TcParser::FastF64S1,
2805 {89, 21, 0,
2806 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.sufficient_reduction_for_restart_)}},
2807 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
2808 {::_pbi::TcParser::FastEr0S1,
2809 {96, 20, 3,
2810 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.linesearch_rule_)}},
2811 {::_pbi::TcParser::MiniParse, {}},
2812 {::_pbi::TcParser::MiniParse, {}},
2813 {::_pbi::TcParser::MiniParse, {}},
2814 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
2815 {::_pbi::TcParser::FastMtS2,
2816 {386, 2, 1,
2817 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.presolve_options_)}},
2818 // optional double necessary_reduction_for_restart = 17 [default = 0.9];
2819 {::_pbi::TcParser::FastF64S2,
2820 {393, 22, 0,
2821 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.necessary_reduction_for_restart_)}},
2822 // optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
2823 {::_pbi::TcParser::FastMtS2,
2824 {402, 3, 2,
2825 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.adaptive_linesearch_parameters_)}},
2826 // optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
2827 {::_pbi::TcParser::FastMtS2,
2828 {410, 4, 3,
2829 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.malitsky_pock_parameters_)}},
2830 {::_pbi::TcParser::MiniParse, {}},
2831 {::_pbi::TcParser::MiniParse, {}},
2832 // optional double infinite_constraint_bound_threshold = 22 [default = inf];
2833 {::_pbi::TcParser::FastF64S2,
2834 {433, 23, 0,
2835 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.infinite_constraint_bound_threshold_)}},
2836 // optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
2837 {::_pbi::TcParser::FastV8S2,
2838 {440, 7, 0,
2839 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.use_diagonal_qp_trust_region_solver_)}},
2840 // optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
2841 {::_pbi::TcParser::FastF64S2,
2842 {449, 27, 0,
2843 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.diagonal_qp_trust_region_solver_tolerance_)}},
2844 // optional double initial_step_size_scaling = 25 [default = 1];
2845 {::_pbi::TcParser::FastF64S2,
2846 {457, 28, 0,
2847 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.initial_step_size_scaling_)}},
2848 // optional int32 verbosity_level = 26 [default = 0];
2849 {::_pbi::TcParser::FastV32S2,
2850 {464, 9, 0,
2851 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.verbosity_level_)}},
2852 // optional int32 num_shards = 27 [default = 0];
2853 {::_pbi::TcParser::FastV32S2,
2854 {472, 11, 0,
2855 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.num_shards_)}},
2856 // repeated int32 random_projection_seeds = 28 [packed = true];
2857 {::_pbi::TcParser::FastV32P2,
2858 {482, 0, 0,
2859 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.random_projection_seeds_)}},
2860 // optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
2861 {::_pbi::TcParser::FastV8S2,
2862 {488, 25, 0,
2863 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_)}},
2864 // optional bool use_feasibility_polishing = 30 [default = false];
2865 {::_pbi::TcParser::FastV8S2,
2866 {496, 8, 0,
2867 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.use_feasibility_polishing_)}},
2868 // optional double log_interval_seconds = 31 [default = 0];
2869 {::_pbi::TcParser::FastF64S2,
2870 {505, 10, 0,
2871 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.log_interval_seconds_)}},
2872 }}, {{
2873 33, 0, 1,
2874 65532, 27,
2875 65535, 65535
2876 }}, {{
2877 // optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
2878 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.termination_criteria_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2879 // optional int32 num_threads = 2 [default = 1];
2880 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.num_threads_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2881 // optional bool record_iteration_stats = 3;
2882 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.record_iteration_stats_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2883 // optional int32 major_iteration_frequency = 4 [default = 64];
2884 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.major_iteration_frequency_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2885 // optional int32 termination_check_frequency = 5 [default = 64];
2886 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.termination_check_frequency_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2887 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
2888 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.restart_strategy_), _Internal::kHasBitsOffset + 17, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2889 // optional double primal_weight_update_smoothing = 7 [default = 0.5];
2890 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.primal_weight_update_smoothing_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2891 // optional double initial_primal_weight = 8;
2892 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.initial_primal_weight_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2893 // optional int32 l_inf_ruiz_iterations = 9 [default = 5];
2894 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.l_inf_ruiz_iterations_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2895 // optional bool l2_norm_rescaling = 10 [default = true];
2896 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.l2_norm_rescaling_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2897 // optional double sufficient_reduction_for_restart = 11 [default = 0.1];
2898 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.sufficient_reduction_for_restart_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2899 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
2900 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.linesearch_rule_), _Internal::kHasBitsOffset + 20, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
2901 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
2902 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.presolve_options_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2903 // optional double necessary_reduction_for_restart = 17 [default = 0.9];
2904 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.necessary_reduction_for_restart_), _Internal::kHasBitsOffset + 22, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2905 // optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
2906 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.adaptive_linesearch_parameters_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2907 // optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
2908 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.malitsky_pock_parameters_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
2909 // optional double infinite_constraint_bound_threshold = 22 [default = inf];
2910 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.infinite_constraint_bound_threshold_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2911 // optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
2912 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.use_diagonal_qp_trust_region_solver_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2913 // optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
2914 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.diagonal_qp_trust_region_solver_tolerance_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2915 // optional double initial_step_size_scaling = 25 [default = 1];
2916 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.initial_step_size_scaling_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2917 // optional int32 verbosity_level = 26 [default = 0];
2918 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.verbosity_level_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2919 // optional int32 num_shards = 27 [default = 0];
2920 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.num_shards_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
2921 // repeated int32 random_projection_seeds = 28 [packed = true];
2922 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.random_projection_seeds_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
2923 // optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
2924 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_), _Internal::kHasBitsOffset + 25, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2925 // optional bool use_feasibility_polishing = 30 [default = false];
2926 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.use_feasibility_polishing_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2927 // optional double log_interval_seconds = 31 [default = 0];
2928 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.log_interval_seconds_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
2929 // optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
2930 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.scheduler_type_), _Internal::kHasBitsOffset + 26, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
2931 // optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
2932 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.apply_feasibility_polishing_after_limits_reached_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2933 // optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
2934 {PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.apply_feasibility_polishing_if_solver_is_interrupted_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
2935 }},
2936 {{
2937 {::_pbi::TcParser::GetTable<::operations_research::pdlp::TerminationCriteria>()},
2938 {::_pbi::TcParser::GetTable<::operations_research::pdlp::PrimalDualHybridGradientParams_PresolveOptions>()},
2939 {::_pbi::TcParser::GetTable<::operations_research::pdlp::AdaptiveLinesearchParams>()},
2940 {::_pbi::TcParser::GetTable<::operations_research::pdlp::MalitskyPockParams>()},
2941 {0, 4},
2942 {0, 3},
2944 }},
2945 {{
2946 }},
2947};
2948PROTOBUF_NOINLINE void PrimalDualHybridGradientParams::Clear() {
2949// @@protoc_insertion_point(message_clear_start:operations_research.pdlp.PrimalDualHybridGradientParams)
2950 ::google::protobuf::internal::TSanWrite(&_impl_);
2951 ::uint32_t cached_has_bits = 0;
2952 // Prevent compiler warnings about cached_has_bits being unused
2953 (void) cached_has_bits;
2954
2955 cached_has_bits = _impl_._has_bits_[0];
2956 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
2957 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
2958 _impl_.random_projection_seeds_.Clear();
2959 }
2960 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
2961 ABSL_DCHECK(_impl_.termination_criteria_ != nullptr);
2962 _impl_.termination_criteria_->Clear();
2963 }
2964 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
2965 ABSL_DCHECK(_impl_.presolve_options_ != nullptr);
2966 _impl_.presolve_options_->Clear();
2967 }
2968 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
2969 ABSL_DCHECK(_impl_.adaptive_linesearch_parameters_ != nullptr);
2970 _impl_.adaptive_linesearch_parameters_->Clear();
2971 }
2972 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
2973 ABSL_DCHECK(_impl_.malitsky_pock_parameters_ != nullptr);
2974 _impl_.malitsky_pock_parameters_->Clear();
2975 }
2976 }
2977 if (BatchCheckHasBit(cached_has_bits, 0x000000e0U)) {
2978 ::memset(&_impl_.initial_primal_weight_, 0, static_cast<::size_t>(
2979 reinterpret_cast<char*>(&_impl_.use_diagonal_qp_trust_region_solver_) -
2980 reinterpret_cast<char*>(&_impl_.initial_primal_weight_)) + sizeof(_impl_.use_diagonal_qp_trust_region_solver_));
2981 }
2982 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
2983 ::memset(&_impl_.use_feasibility_polishing_, 0, static_cast<::size_t>(
2984 reinterpret_cast<char*>(&_impl_.apply_feasibility_polishing_if_solver_is_interrupted_) -
2985 reinterpret_cast<char*>(&_impl_.use_feasibility_polishing_)) + sizeof(_impl_.apply_feasibility_polishing_if_solver_is_interrupted_));
2986 _impl_.num_threads_ = 1;
2987 _impl_.major_iteration_frequency_ = 64;
2988 }
2989 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
2990 _impl_.termination_check_frequency_ = 64;
2991 _impl_.restart_strategy_ = 3;
2992 _impl_.primal_weight_update_smoothing_ = 0.5;
2993 _impl_.l_inf_ruiz_iterations_ = 5;
2994 _impl_.linesearch_rule_ = 1;
2995 _impl_.sufficient_reduction_for_restart_ = 0.1;
2996 _impl_.necessary_reduction_for_restart_ = 0.9;
2997 _impl_.infinite_constraint_bound_threshold_ = std::numeric_limits<double>::infinity();
2998 }
2999 if (BatchCheckHasBit(cached_has_bits, 0x1f000000U)) {
3000 _impl_.l2_norm_rescaling_ = true;
3001 _impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_ = true;
3002 _impl_.scheduler_type_ = 1;
3003 _impl_.diagonal_qp_trust_region_solver_tolerance_ = 1e-08;
3004 _impl_.initial_step_size_scaling_ = 1;
3005 }
3006 _impl_._has_bits_.Clear();
3007 _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
3008}
3009
3010#if defined(PROTOBUF_CUSTOM_VTABLE)
3011::uint8_t* PROTOBUF_NONNULL PrimalDualHybridGradientParams::_InternalSerialize(
3012 const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
3013 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
3014 const PrimalDualHybridGradientParams& this_ = static_cast<const PrimalDualHybridGradientParams&>(base);
3015#else // PROTOBUF_CUSTOM_VTABLE
3016::uint8_t* PROTOBUF_NONNULL PrimalDualHybridGradientParams::_InternalSerialize(
3017 ::uint8_t* PROTOBUF_NONNULL target,
3018 ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
3019 const PrimalDualHybridGradientParams& this_ = *this;
3020#endif // PROTOBUF_CUSTOM_VTABLE
3021 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
3022 this_.CheckHasBitConsistency();
3024 // @@protoc_insertion_point(serialize_to_array_start:operations_research.pdlp.PrimalDualHybridGradientParams)
3025 ::uint32_t cached_has_bits = 0;
3026 (void)cached_has_bits;
3027
3028 cached_has_bits = this_._impl_._has_bits_[0];
3029 // optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
3030 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3031 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3032 1, *this_._impl_.termination_criteria_, this_._impl_.termination_criteria_->GetCachedSize(), target,
3033 stream);
3034 }
3035
3036 // optional int32 num_threads = 2 [default = 1];
3037 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3038 target =
3039 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
3040 stream, this_._internal_num_threads(), target);
3041 }
3042
3043 // optional bool record_iteration_stats = 3;
3044 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3045 target = stream->EnsureSpace(target);
3046 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3047 3, this_._internal_record_iteration_stats(), target);
3048 }
3049
3050 // optional int32 major_iteration_frequency = 4 [default = 64];
3051 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3052 target =
3053 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
3054 stream, this_._internal_major_iteration_frequency(), target);
3055 }
3056
3057 // optional int32 termination_check_frequency = 5 [default = 64];
3058 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3059 target =
3060 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
3061 stream, this_._internal_termination_check_frequency(), target);
3062 }
3063
3064 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
3065 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3066 target = stream->EnsureSpace(target);
3067 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3068 6, this_._internal_restart_strategy(), target);
3069 }
3070
3071 // optional double primal_weight_update_smoothing = 7 [default = 0.5];
3072 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3073 target = stream->EnsureSpace(target);
3074 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3075 7, this_._internal_primal_weight_update_smoothing(), target);
3076 }
3077
3078 // optional double initial_primal_weight = 8;
3079 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3080 target = stream->EnsureSpace(target);
3081 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3082 8, this_._internal_initial_primal_weight(), target);
3083 }
3084
3085 // optional int32 l_inf_ruiz_iterations = 9 [default = 5];
3086 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3087 target =
3088 ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
3089 stream, this_._internal_l_inf_ruiz_iterations(), target);
3090 }
3091
3092 // optional bool l2_norm_rescaling = 10 [default = true];
3093 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3094 target = stream->EnsureSpace(target);
3095 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3096 10, this_._internal_l2_norm_rescaling(), target);
3097 }
3098
3099 // optional double sufficient_reduction_for_restart = 11 [default = 0.1];
3100 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3101 target = stream->EnsureSpace(target);
3102 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3103 11, this_._internal_sufficient_reduction_for_restart(), target);
3104 }
3105
3106 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
3107 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3108 target = stream->EnsureSpace(target);
3109 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3110 12, this_._internal_linesearch_rule(), target);
3111 }
3112
3113 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
3114 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3115 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3116 16, *this_._impl_.presolve_options_, this_._impl_.presolve_options_->GetCachedSize(), target,
3117 stream);
3118 }
3119
3120 // optional double necessary_reduction_for_restart = 17 [default = 0.9];
3121 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3122 target = stream->EnsureSpace(target);
3123 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3124 17, this_._internal_necessary_reduction_for_restart(), target);
3125 }
3126
3127 // optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
3128 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3129 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3130 18, *this_._impl_.adaptive_linesearch_parameters_, this_._impl_.adaptive_linesearch_parameters_->GetCachedSize(), target,
3131 stream);
3132 }
3133
3134 // optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
3135 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3136 target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
3137 19, *this_._impl_.malitsky_pock_parameters_, this_._impl_.malitsky_pock_parameters_->GetCachedSize(), target,
3138 stream);
3139 }
3140
3141 // optional double infinite_constraint_bound_threshold = 22 [default = inf];
3142 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3143 target = stream->EnsureSpace(target);
3144 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3145 22, this_._internal_infinite_constraint_bound_threshold(), target);
3146 }
3147
3148 // optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
3149 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3150 target = stream->EnsureSpace(target);
3151 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3152 23, this_._internal_use_diagonal_qp_trust_region_solver(), target);
3153 }
3154
3155 // optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
3156 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3157 target = stream->EnsureSpace(target);
3158 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3159 24, this_._internal_diagonal_qp_trust_region_solver_tolerance(), target);
3160 }
3161
3162 // optional double initial_step_size_scaling = 25 [default = 1];
3163 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3164 target = stream->EnsureSpace(target);
3165 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3166 25, this_._internal_initial_step_size_scaling(), target);
3167 }
3168
3169 // optional int32 verbosity_level = 26 [default = 0];
3170 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3171 target = stream->EnsureSpace(target);
3172 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3173 26, this_._internal_verbosity_level(), target);
3174 }
3175
3176 // optional int32 num_shards = 27 [default = 0];
3177 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3178 target = stream->EnsureSpace(target);
3179 target = ::_pbi::WireFormatLite::WriteInt32ToArray(
3180 27, this_._internal_num_shards(), target);
3181 }
3182
3183 // repeated int32 random_projection_seeds = 28 [packed = true];
3184 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3185 {
3186 int byte_size = this_._impl_._random_projection_seeds_cached_byte_size_.Get();
3187 if (byte_size > 0) {
3188 target = stream->WriteInt32Packed(
3189 28, this_._internal_random_projection_seeds(), byte_size, target);
3190 }
3191 }
3192 }
3193
3194 // optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
3195 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3196 target = stream->EnsureSpace(target);
3197 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3198 29, this_._internal_handle_some_primal_gradients_on_finite_bounds_as_residuals(), target);
3199 }
3200
3201 // optional bool use_feasibility_polishing = 30 [default = false];
3202 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3203 target = stream->EnsureSpace(target);
3204 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3205 30, this_._internal_use_feasibility_polishing(), target);
3206 }
3207
3208 // optional double log_interval_seconds = 31 [default = 0];
3209 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3210 target = stream->EnsureSpace(target);
3211 target = ::_pbi::WireFormatLite::WriteDoubleToArray(
3212 31, this_._internal_log_interval_seconds(), target);
3213 }
3214
3215 // optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
3216 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3217 target = stream->EnsureSpace(target);
3218 target = ::_pbi::WireFormatLite::WriteEnumToArray(
3219 32, this_._internal_scheduler_type(), target);
3220 }
3221
3222 // optional bool apply_feasibility_polishing_after_limits_reached = 33 [default = false];
3223 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3224 target = stream->EnsureSpace(target);
3225 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3226 33, this_._internal_apply_feasibility_polishing_after_limits_reached(), target);
3227 }
3228
3229 // optional bool apply_feasibility_polishing_if_solver_is_interrupted = 34 [default = false];
3230 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3231 target = stream->EnsureSpace(target);
3232 target = ::_pbi::WireFormatLite::WriteBoolToArray(
3233 34, this_._internal_apply_feasibility_polishing_if_solver_is_interrupted(), target);
3234 }
3235
3236 if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
3237 target =
3238 ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
3239 this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
3240 }
3241 // @@protoc_insertion_point(serialize_to_array_end:operations_research.pdlp.PrimalDualHybridGradientParams)
3242 return target;
3243}
3244
3245#if defined(PROTOBUF_CUSTOM_VTABLE)
3247 const PrimalDualHybridGradientParams& this_ = static_cast<const PrimalDualHybridGradientParams&>(base);
3248#else // PROTOBUF_CUSTOM_VTABLE
3250 const PrimalDualHybridGradientParams& this_ = *this;
3251#endif // PROTOBUF_CUSTOM_VTABLE
3252 // @@protoc_insertion_point(message_byte_size_start:operations_research.pdlp.PrimalDualHybridGradientParams)
3253 ::size_t total_size = 0;
3254
3255 ::uint32_t cached_has_bits = 0;
3256 // Prevent compiler warnings about cached_has_bits being unused
3257 (void)cached_has_bits;
3258
3259 ::_pbi::Prefetch5LinesFrom7Lines(&this_);
3260 cached_has_bits = this_._impl_._has_bits_[0];
3261 total_size += ::absl::popcount(0x18c00400U & cached_has_bits) * 10;
3262 total_size += ::absl::popcount(0x00240020U & cached_has_bits) * 9;
3263 total_size += ::absl::popcount(0x02003180U & cached_has_bits) * 3;
3264 total_size += ::absl::popcount(0x01000040U & cached_has_bits) * 2;
3265 if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
3266 // repeated int32 random_projection_seeds = 28 [packed = true];
3267 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3268 total_size +=
3269 ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
3270 this_._internal_random_projection_seeds(), 2,
3271 this_._impl_._random_projection_seeds_cached_byte_size_);
3272 }
3273 // optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
3274 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3275 total_size += 1 +
3276 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.termination_criteria_);
3277 }
3278 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
3279 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3280 total_size += 2 +
3281 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.presolve_options_);
3282 }
3283 // optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
3284 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3285 total_size += 2 +
3286 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.adaptive_linesearch_parameters_);
3287 }
3288 // optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
3289 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3290 total_size += 2 +
3291 ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.malitsky_pock_parameters_);
3292 }
3293 }
3294 if (BatchCheckHasBit(cached_has_bits, 0x0000ca00U)) {
3295 // optional int32 verbosity_level = 26 [default = 0];
3296 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3297 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3298 this_._internal_verbosity_level());
3299 }
3300 // optional int32 num_shards = 27 [default = 0];
3301 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3302 total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
3303 this_._internal_num_shards());
3304 }
3305 // optional int32 num_threads = 2 [default = 1];
3306 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3307 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3308 this_._internal_num_threads());
3309 }
3310 // optional int32 major_iteration_frequency = 4 [default = 64];
3311 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3312 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3313 this_._internal_major_iteration_frequency());
3314 }
3315 }
3316 if (BatchCheckHasBit(cached_has_bits, 0x001b0000U)) {
3317 // optional int32 termination_check_frequency = 5 [default = 64];
3318 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3319 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3320 this_._internal_termination_check_frequency());
3321 }
3322 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
3323 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3324 total_size += 1 +
3325 ::_pbi::WireFormatLite::EnumSize(this_._internal_restart_strategy());
3326 }
3327 // optional int32 l_inf_ruiz_iterations = 9 [default = 5];
3328 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3329 total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
3330 this_._internal_l_inf_ruiz_iterations());
3331 }
3332 // optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
3333 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3334 total_size += 1 +
3335 ::_pbi::WireFormatLite::EnumSize(this_._internal_linesearch_rule());
3336 }
3337 }
3338 {
3339 // optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
3340 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3341 total_size += 2 +
3342 ::_pbi::WireFormatLite::EnumSize(this_._internal_scheduler_type());
3343 }
3344 }
3345 return this_.MaybeComputeUnknownFieldsSize(total_size,
3346 &this_._impl_._cached_size_);
3347}
3348
3349void PrimalDualHybridGradientParams::MergeImpl(::google::protobuf::MessageLite& to_msg,
3350 const ::google::protobuf::MessageLite& from_msg) {
3351 auto* const _this =
3352 static_cast<PrimalDualHybridGradientParams*>(&to_msg);
3353 auto& from = static_cast<const PrimalDualHybridGradientParams&>(from_msg);
3354 if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
3355 from.CheckHasBitConsistency();
3356 }
3357 ::google::protobuf::Arena* arena = _this->GetArena();
3358 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.pdlp.PrimalDualHybridGradientParams)
3359 ABSL_DCHECK_NE(&from, _this);
3360 ::uint32_t cached_has_bits = 0;
3361 (void)cached_has_bits;
3362
3363 cached_has_bits = from._impl_._has_bits_[0];
3364 if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
3365 if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
3366 _this->_internal_mutable_random_projection_seeds()->MergeFrom(from._internal_random_projection_seeds());
3367 }
3368 if (CheckHasBit(cached_has_bits, 0x00000002U)) {
3369 ABSL_DCHECK(from._impl_.termination_criteria_ != nullptr);
3370 if (_this->_impl_.termination_criteria_ == nullptr) {
3371 _this->_impl_.termination_criteria_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.termination_criteria_);
3372 } else {
3373 _this->_impl_.termination_criteria_->MergeFrom(*from._impl_.termination_criteria_);
3374 }
3375 }
3376 if (CheckHasBit(cached_has_bits, 0x00000004U)) {
3377 ABSL_DCHECK(from._impl_.presolve_options_ != nullptr);
3378 if (_this->_impl_.presolve_options_ == nullptr) {
3379 _this->_impl_.presolve_options_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.presolve_options_);
3380 } else {
3381 _this->_impl_.presolve_options_->MergeFrom(*from._impl_.presolve_options_);
3382 }
3383 }
3384 if (CheckHasBit(cached_has_bits, 0x00000008U)) {
3385 ABSL_DCHECK(from._impl_.adaptive_linesearch_parameters_ != nullptr);
3386 if (_this->_impl_.adaptive_linesearch_parameters_ == nullptr) {
3387 _this->_impl_.adaptive_linesearch_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.adaptive_linesearch_parameters_);
3388 } else {
3389 _this->_impl_.adaptive_linesearch_parameters_->MergeFrom(*from._impl_.adaptive_linesearch_parameters_);
3390 }
3391 }
3392 if (CheckHasBit(cached_has_bits, 0x00000010U)) {
3393 ABSL_DCHECK(from._impl_.malitsky_pock_parameters_ != nullptr);
3394 if (_this->_impl_.malitsky_pock_parameters_ == nullptr) {
3395 _this->_impl_.malitsky_pock_parameters_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.malitsky_pock_parameters_);
3396 } else {
3397 _this->_impl_.malitsky_pock_parameters_->MergeFrom(*from._impl_.malitsky_pock_parameters_);
3398 }
3399 }
3400 if (CheckHasBit(cached_has_bits, 0x00000020U)) {
3401 _this->_impl_.initial_primal_weight_ = from._impl_.initial_primal_weight_;
3402 }
3403 if (CheckHasBit(cached_has_bits, 0x00000040U)) {
3404 _this->_impl_.record_iteration_stats_ = from._impl_.record_iteration_stats_;
3405 }
3406 if (CheckHasBit(cached_has_bits, 0x00000080U)) {
3407 _this->_impl_.use_diagonal_qp_trust_region_solver_ = from._impl_.use_diagonal_qp_trust_region_solver_;
3408 }
3409 }
3410 if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
3411 if (CheckHasBit(cached_has_bits, 0x00000100U)) {
3412 _this->_impl_.use_feasibility_polishing_ = from._impl_.use_feasibility_polishing_;
3413 }
3414 if (CheckHasBit(cached_has_bits, 0x00000200U)) {
3415 _this->_impl_.verbosity_level_ = from._impl_.verbosity_level_;
3416 }
3417 if (CheckHasBit(cached_has_bits, 0x00000400U)) {
3418 _this->_impl_.log_interval_seconds_ = from._impl_.log_interval_seconds_;
3419 }
3420 if (CheckHasBit(cached_has_bits, 0x00000800U)) {
3421 _this->_impl_.num_shards_ = from._impl_.num_shards_;
3422 }
3423 if (CheckHasBit(cached_has_bits, 0x00001000U)) {
3424 _this->_impl_.apply_feasibility_polishing_after_limits_reached_ = from._impl_.apply_feasibility_polishing_after_limits_reached_;
3425 }
3426 if (CheckHasBit(cached_has_bits, 0x00002000U)) {
3427 _this->_impl_.apply_feasibility_polishing_if_solver_is_interrupted_ = from._impl_.apply_feasibility_polishing_if_solver_is_interrupted_;
3428 }
3429 if (CheckHasBit(cached_has_bits, 0x00004000U)) {
3430 _this->_impl_.num_threads_ = from._impl_.num_threads_;
3431 }
3432 if (CheckHasBit(cached_has_bits, 0x00008000U)) {
3433 _this->_impl_.major_iteration_frequency_ = from._impl_.major_iteration_frequency_;
3434 }
3435 }
3436 if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
3437 if (CheckHasBit(cached_has_bits, 0x00010000U)) {
3438 _this->_impl_.termination_check_frequency_ = from._impl_.termination_check_frequency_;
3439 }
3440 if (CheckHasBit(cached_has_bits, 0x00020000U)) {
3441 _this->_impl_.restart_strategy_ = from._impl_.restart_strategy_;
3442 }
3443 if (CheckHasBit(cached_has_bits, 0x00040000U)) {
3444 _this->_impl_.primal_weight_update_smoothing_ = from._impl_.primal_weight_update_smoothing_;
3445 }
3446 if (CheckHasBit(cached_has_bits, 0x00080000U)) {
3447 _this->_impl_.l_inf_ruiz_iterations_ = from._impl_.l_inf_ruiz_iterations_;
3448 }
3449 if (CheckHasBit(cached_has_bits, 0x00100000U)) {
3450 _this->_impl_.linesearch_rule_ = from._impl_.linesearch_rule_;
3451 }
3452 if (CheckHasBit(cached_has_bits, 0x00200000U)) {
3453 _this->_impl_.sufficient_reduction_for_restart_ = from._impl_.sufficient_reduction_for_restart_;
3454 }
3455 if (CheckHasBit(cached_has_bits, 0x00400000U)) {
3456 _this->_impl_.necessary_reduction_for_restart_ = from._impl_.necessary_reduction_for_restart_;
3457 }
3458 if (CheckHasBit(cached_has_bits, 0x00800000U)) {
3459 _this->_impl_.infinite_constraint_bound_threshold_ = from._impl_.infinite_constraint_bound_threshold_;
3460 }
3461 }
3462 if (BatchCheckHasBit(cached_has_bits, 0x1f000000U)) {
3463 if (CheckHasBit(cached_has_bits, 0x01000000U)) {
3464 _this->_impl_.l2_norm_rescaling_ = from._impl_.l2_norm_rescaling_;
3465 }
3466 if (CheckHasBit(cached_has_bits, 0x02000000U)) {
3467 _this->_impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_ = from._impl_.handle_some_primal_gradients_on_finite_bounds_as_residuals_;
3468 }
3469 if (CheckHasBit(cached_has_bits, 0x04000000U)) {
3470 _this->_impl_.scheduler_type_ = from._impl_.scheduler_type_;
3471 }
3472 if (CheckHasBit(cached_has_bits, 0x08000000U)) {
3473 _this->_impl_.diagonal_qp_trust_region_solver_tolerance_ = from._impl_.diagonal_qp_trust_region_solver_tolerance_;
3474 }
3475 if (CheckHasBit(cached_has_bits, 0x10000000U)) {
3476 _this->_impl_.initial_step_size_scaling_ = from._impl_.initial_step_size_scaling_;
3477 }
3478 }
3479 _this->_impl_._has_bits_[0] |= cached_has_bits;
3480 _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
3481 from._internal_metadata_);
3482}
3483
3485 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.pdlp.PrimalDualHybridGradientParams)
3486 if (&from == this) return;
3487 Clear();
3488 MergeFrom(from);
3489}
3490
3492void PrimalDualHybridGradientParams::InternalSwap(PrimalDualHybridGradientParams* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
3493 using ::std::swap;
3494 _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3495 swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
3496 _impl_.random_projection_seeds_.InternalSwap(&other->_impl_.random_projection_seeds_);
3497 ::google::protobuf::internal::memswap<
3498 PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.initial_step_size_scaling_)
3499 + sizeof(PrimalDualHybridGradientParams::_impl_.initial_step_size_scaling_)
3500 - PROTOBUF_FIELD_OFFSET(PrimalDualHybridGradientParams, _impl_.termination_criteria_)>(
3501 reinterpret_cast<char*>(&_impl_.termination_criteria_),
3502 reinterpret_cast<char*>(&other->_impl_.termination_criteria_));
3503}
3504
3505::google::protobuf::Metadata PrimalDualHybridGradientParams::GetMetadata() const {
3506 return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
3507}
3508// @@protoc_insertion_point(namespace_scope)
3509} // namespace pdlp
3510} // namespace operations_research
3511namespace google {
3512namespace protobuf {
3513} // namespace protobuf
3514} // namespace google
3515// @@protoc_insertion_point(global_scope)
3516PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
3517 _static_init2_ [[maybe_unused]] =
3518 (::_pbi::AddDescriptors(&descriptor_table_ortools_2fpdlp_2fsolvers_2eproto),
3519 ::std::false_type{});
3520#include "google/protobuf/port_undef.inc"
static PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::std::false_type _static_init2_
static const ::_pb::Message *PROTOBUF_NONNULL const file_default_instances[]
::google::protobuf::Metadata GetMetadata() const
friend class ::google::protobuf::MessageLite
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void CopyFrom(const AdaptiveLinesearchParams &from)
friend class ::google::protobuf::MessageLite
Definition solvers.pb.h:910
::google::protobuf::Metadata GetMetadata() const
void CopyFrom(const MalitskyPockParams &from)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
static constexpr auto InternalGenerateClassData_()
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void MergeFrom(const PrimalDualHybridGradientParams_PresolveOptions &from)
void CopyFrom(const PrimalDualHybridGradientParams_PresolveOptions &from)
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
void CopyFrom(const PrimalDualHybridGradientParams &from)
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend void swap(PrimalDualHybridGradientParams &a, PrimalDualHybridGradientParams &b)
void MergeFrom(const PrimalDualHybridGradientParams &from)
::google::protobuf::Metadata GetMetadata() const
decltype(::std::declval< TerminationCriteria_DetailedOptimalityCriteria >()._impl_._has_bits_) HasBits
void MergeFrom(const TerminationCriteria_DetailedOptimalityCriteria &from)
Definition solvers.pb.h:544
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend void swap(TerminationCriteria_DetailedOptimalityCriteria &a, TerminationCriteria_DetailedOptimalityCriteria &b)
Definition solvers.pb.h:521
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
Definition solvers.pb.h:498
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
void CopyFrom(const TerminationCriteria_DetailedOptimalityCriteria &from)
decltype(::std::declval< TerminationCriteria_SimpleOptimalityCriteria >()._impl_._has_bits_) HasBits
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
friend void swap(TerminationCriteria_SimpleOptimalityCriteria &a, TerminationCriteria_SimpleOptimalityCriteria &b)
Definition solvers.pb.h:316
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
Definition solvers.pb.h:293
void CopyFrom(const TerminationCriteria_SimpleOptimalityCriteria &from)
void MergeFrom(const TerminationCriteria_SimpleOptimalityCriteria &from)
Definition solvers.pb.h:339
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
friend class ::google::protobuf::MessageLite
void set_allocated_detailed_optimality_criteria(::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria *PROTOBUF_NULLABLE value)
const ::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria & detailed_optimality_criteria() const
friend void swap(TerminationCriteria &a, TerminationCriteria &b)
void set_allocated_simple_optimality_criteria(::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria *PROTOBUF_NULLABLE value)
void CopyFrom(const TerminationCriteria &from)
const ::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria & simple_optimality_criteria() const
void MergeFrom(const TerminationCriteria &from)
::google::protobuf::Metadata GetMetadata() const
const ::google::protobuf::UnknownFieldSet & unknown_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND
ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL
OptimalityCriteriaCase optimality_criteria_case() const
friend class ::google::protobuf::Arena
::uint8_t *PROTOBUF_NONNULL _InternalSerialize(::uint8_t *PROTOBUF_NONNULL target, ::google::protobuf::io::EpsCopyOutputStream *PROTOBUF_NONNULL stream) const final
static constexpr ::_pbi::MigrationSchema *PROTOBUF_NULLABLE schemas
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fglop_2fparameters_2eproto
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteria_DetailedOptimalityCriteriaDefaultTypeInternal _TerminationCriteria_DetailedOptimalityCriteria_default_instance_
Definition solvers.pb.cc:84
PROTOBUF_CONSTINIT const uint32_t SchedulerType_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AdaptiveLinesearchParamsDefaultTypeInternal _AdaptiveLinesearchParams_default_instance_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_PresolveOptions_class_data_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL PrimalDualHybridGradientParams_RestartStrategy_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull PrimalDualHybridGradientParams_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_DetailedOptimalityCriteria_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull AdaptiveLinesearchParams_class_data_
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull MalitskyPockParams_class_data_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrimalDualHybridGradientParams_PresolveOptionsDefaultTypeInternal _PrimalDualHybridGradientParams_PresolveOptions_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL SchedulerType_descriptor()
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL OptimalityNorm_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrimalDualHybridGradientParamsDefaultTypeInternal _PrimalDualHybridGradientParams_default_instance_
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteriaDefaultTypeInternal _TerminationCriteria_default_instance_
const ::google::protobuf::EnumDescriptor *PROTOBUF_NONNULL PrimalDualHybridGradientParams_LinesearchRule_descriptor()
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_class_data_
PROTOBUF_CONSTINIT const uint32_t PrimalDualHybridGradientParams_RestartStrategy_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TerminationCriteria_SimpleOptimalityCriteriaDefaultTypeInternal _TerminationCriteria_SimpleOptimalityCriteria_default_instance_
Definition solvers.pb.cc:54
PROTOBUF_CONSTINIT const uint32_t OptimalityNorm_internal_data_[]
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const::google::protobuf::internal::ClassDataFull TerminationCriteria_SimpleOptimalityCriteria_class_data_
PROTOBUF_CONSTINIT const uint32_t PrimalDualHybridGradientParams_LinesearchRule_internal_data_[]
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT OR_PROTO_DLL PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MalitskyPockParamsDefaultTypeInternal _MalitskyPockParams_default_instance_
OR-Tools root namespace.
STL namespace.
PROTOBUF_CONSTINITconst ::_pbi::DescriptorTable descriptor_table_ortools_2fpdlp_2fsolvers_2eproto
static const ::_pb::EnumDescriptor *PROTOBUF_NONNULL file_level_enum_descriptors_ortools_2fpdlp_2fsolvers_2eproto[4]
::absl::once_flag descriptor_table_ortools_2fpdlp_2fsolvers_2eproto_once
static const ::_pbi::DescriptorTable *PROTOBUF_NONNULL const descriptor_table_ortools_2fpdlp_2fsolvers_2eproto_deps[1]
static constexprconst ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE file_level_service_descriptors_ortools_2fpdlp_2fsolvers_2eproto
const ::uint32_t TableStruct_ortools_2fpdlp_2fsolvers_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold)
::operations_research::pdlp::TerminationCriteria_SimpleOptimalityCriteria *PROTOBUF_NULLABLE simple_optimality_criteria_
::operations_research::pdlp::TerminationCriteria_DetailedOptimalityCriteria *PROTOBUF_NULLABLE detailed_optimality_criteria_