Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
#include <permutation.h>
Public Member Functions | |
PermutationCycleHandler (const PermutationCycleHandler &)=delete | |
This type is neither copyable nor movable. | |
PermutationCycleHandler & | operator= (const PermutationCycleHandler &)=delete |
virtual void | SetTempFromIndex (IndexType source)=0 |
virtual void | SetIndexFromIndex (IndexType source, IndexType destination) const =0 |
Moves a data element one step along its cycle. | |
virtual void | SetIndexFromTemp (IndexType destination) const =0 |
Sets a data element from the temporary. | |
virtual void | SetSeen (IndexType *unused_permutation_element) const |
virtual bool | Unseen (IndexType unused_permutation_element) const |
virtual | ~PermutationCycleHandler () |
Protected Member Functions | |
PermutationCycleHandler () | |
Abstract base class template defining the interface needed by PermutationApplier to handle a single cycle of a permutation.
Definition at line 88 of file permutation.h.
|
delete |
This type is neither copyable nor movable.
|
inlinevirtual |
Definition at line 130 of file permutation.h.
|
inlineprotected |
Definition at line 133 of file permutation.h.
|
delete |
|
pure virtual |
Moves a data element one step along its cycle.
Implemented in operations_research::ArrayIndexCycleHandler< DataType, IndexType >, operations_research::ArrayIndexCycleHandler< NodeIndexType, ArcIndexType >, operations_research::CostValueCycleHandler< ArcIndexType >, operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs, and operations_research::ForwardStaticGraph< NodeIndexType, ArcIndexType >::CycleHandlerForAnnotatedArcs.
|
pure virtual |
Sets a data element from the temporary.
Implemented in operations_research::ArrayIndexCycleHandler< DataType, IndexType >, operations_research::ArrayIndexCycleHandler< NodeIndexType, ArcIndexType >, operations_research::CostValueCycleHandler< ArcIndexType >, operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs, and operations_research::ForwardStaticGraph< NodeIndexType, ArcIndexType >::CycleHandlerForAnnotatedArcs.
|
inlinevirtual |
Marks an element of the permutation as handled by PermutationHandler::Apply(), meaning that we have read the corresponding value from the data to be permuted, and put that value somewhere (either in the temp or in its ultimate destination in the data.
This method must be overridden in implementations where it is called. If an implementation doesn't call it, no need to override.
Reimplemented in operations_research::ArrayIndexCycleHandler< DataType, IndexType >, operations_research::ArrayIndexCycleHandler< NodeIndexType, ArcIndexType >, and operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs.
Definition at line 114 of file permutation.h.
|
pure virtual |
Sets the internal temporary storage from the given index in the underlying container(s).
Implemented in operations_research::ArrayIndexCycleHandler< DataType, IndexType >, operations_research::ArrayIndexCycleHandler< NodeIndexType, ArcIndexType >, operations_research::CostValueCycleHandler< ArcIndexType >, operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs, and operations_research::ForwardStaticGraph< NodeIndexType, ArcIndexType >::CycleHandlerForAnnotatedArcs.
|
inlinevirtual |
Returns true iff the given element of the permutation is unseen, meaning that it has not yet been handled by PermutationApplier::Apply().
This method must be overridden in implementations where it is called. If an implementation doesn't call it, no need to override.
Reimplemented in operations_research::ArrayIndexCycleHandler< DataType, IndexType >, operations_research::ArrayIndexCycleHandler< NodeIndexType, ArcIndexType >, and operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs.
Definition at line 125 of file permutation.h.