Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs Class Reference

#include <ebert_graph.h>

Inheritance diagram for operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs:
operations_research::PermutationCycleHandler< ArcIndexType >

Public Member Functions

 CycleHandlerForAnnotatedArcs (PermutationCycleHandler< ArcIndexType > *annotation_handler, DerivedGraph *graph)
 
 CycleHandlerForAnnotatedArcs (const CycleHandlerForAnnotatedArcs &)=delete
 This type is neither copyable nor movable.
 
CycleHandlerForAnnotatedArcsoperator= (const CycleHandlerForAnnotatedArcs &)=delete
 
void SetTempFromIndex (ArcIndexType source) override
 
void SetIndexFromIndex (ArcIndexType source, ArcIndexType destination) const override
 Moves a data element one step along its cycle.
 
void SetIndexFromTemp (ArcIndexType destination) const override
 Sets a data element from the temporary.
 
void SetSeen (ArcIndexType *permutation_element) const override
 
bool Unseen (ArcIndexType permutation_element) const override
 
 ~CycleHandlerForAnnotatedArcs () override
 
- Public Member Functions inherited from operations_research::PermutationCycleHandler< ArcIndexType >
 PermutationCycleHandler (const PermutationCycleHandler &)=delete
 This type is neither copyable nor movable.
 
PermutationCycleHandleroperator= (const PermutationCycleHandler &)=delete
 
virtual ~PermutationCycleHandler ()
 

Additional Inherited Members

- Protected Member Functions inherited from operations_research::PermutationCycleHandler< ArcIndexType >
 PermutationCycleHandler ()
 

Detailed Description

template<typename NodeIndexType, typename ArcIndexType, typename DerivedGraph>
class operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs

Definition at line 1049 of file ebert_graph.h.

Constructor & Destructor Documentation

◆ CycleHandlerForAnnotatedArcs() [1/2]

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::CycleHandlerForAnnotatedArcs ( PermutationCycleHandler< ArcIndexType > * annotation_handler,
DerivedGraph * graph )
inline

Definition at line 1052 of file ebert_graph.h.

◆ CycleHandlerForAnnotatedArcs() [2/2]

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::CycleHandlerForAnnotatedArcs ( const CycleHandlerForAnnotatedArcs & )
delete

This type is neither copyable nor movable.

◆ ~CycleHandlerForAnnotatedArcs()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::~CycleHandlerForAnnotatedArcs ( )
inlineoverride

Definition at line 1102 of file ebert_graph.h.

Member Function Documentation

◆ operator=()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
CycleHandlerForAnnotatedArcs & operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::operator= ( const CycleHandlerForAnnotatedArcs & )
delete

◆ SetIndexFromIndex()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
void operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::SetIndexFromIndex ( ArcIndexType source,
ArcIndexType destination ) const
inlineoverridevirtual

Moves a data element one step along its cycle.

Implements operations_research::PermutationCycleHandler< ArcIndexType >.

Definition at line 1073 of file ebert_graph.h.

◆ SetIndexFromTemp()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
void operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::SetIndexFromTemp ( ArcIndexType destination) const
inlineoverridevirtual

Sets a data element from the temporary.

Implements operations_research::PermutationCycleHandler< ArcIndexType >.

Definition at line 1082 of file ebert_graph.h.

◆ SetSeen()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
void operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::SetSeen ( ArcIndexType * permutation_element) const
inlineoverridevirtual

Since we are free to destroy the permutation array we use the kNilArc value to mark entries in the array that have been processed already. There is no need to be able to recover the original permutation array entries once they have been seen.

Reimplemented from operations_research::PermutationCycleHandler< ArcIndexType >.

Definition at line 1094 of file ebert_graph.h.

◆ SetTempFromIndex()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
void operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::SetTempFromIndex ( ArcIndexType source)
inlineoverridevirtual

Sets the internal temporary storage from the given index in the underlying container(s).

Implements operations_research::PermutationCycleHandler< ArcIndexType >.

Definition at line 1065 of file ebert_graph.h.

◆ Unseen()

template<typename NodeIndexType , typename ArcIndexType , typename DerivedGraph >
bool operations_research::EbertGraphBase< NodeIndexType, ArcIndexType, DerivedGraph >::CycleHandlerForAnnotatedArcs::Unseen ( ArcIndexType unused_permutation_element) const
inlineoverridevirtual

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 from operations_research::PermutationCycleHandler< ArcIndexType >.

Definition at line 1098 of file ebert_graph.h.


The documentation for this class was generated from the following file: