Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::glop::SparseColumn Class Reference

Detailed Description

A SparseColumn is a SparseVector<RowIndex>, with a few methods renamed to help readability on the client side.

Definition at line 48 of file sparse_column.h.

#include <sparse_column.h>

Inheritance diagram for operations_research::glop::SparseColumn:
operations_research::glop::SparseVector< RowIndex, SparseColumnIterator >

Public Member Functions

 SparseColumn ()
RowIndex EntryRow (EntryIndex i) const
 Use a separate API to get the row and coefficient of entry #i.
Fractional EntryCoefficient (EntryIndex i) const
RowIndex GetFirstRow () const
RowIndex GetLastRow () const
void ApplyRowPermutation (const RowPermutation &p)
void ApplyPartialRowPermutation (const RowPermutation &p)
Public Member Functions inherited from operations_research::glop::SparseVector< RowIndex, SparseColumnIterator >
 SparseVector ()
SparseVectoroperator= (const SparseVector &other)
Iterator begin () const
Iterator end () const
void Clear ()
 Clears the vector, i.e. removes all entries.
void ClearAndRelease ()
 Clears the vector and releases the memory it uses.
void Reserve (EntryIndex new_capacity)
 Reserve the underlying storage for the given number of entries.
bool IsEmpty () const
 Returns true if the vector is empty.
void CleanUp ()
bool IsCleanedUp () const
void Swap (SparseVector *other)
void PopulateFromSparseVector (const SparseVector &sparse_vector)
void PopulateFromDenseVector (const DenseVector &dense_vector)
void AppendEntriesWithOffset (const SparseVector &sparse_vector, Index offset)
bool CheckNoDuplicates () const
void SetCoefficient (Index index, Fractional value)
 Defines the coefficient at index, i.e. vector[index] = value;.
void DeleteEntry (Index index)
void RemoveNearZeroEntries (Fractional threshold)
void RemoveNearZeroEntriesWithWeights (Fractional threshold, const DenseVector &weights)
void MoveEntryToFirstPosition (Index index)
void MoveEntryToLastPosition (Index index)
void MultiplyByConstant (Fractional factor)
void ComponentWiseMultiply (const DenseVector &factors)
void DivideByConstant (Fractional factor)
void ComponentWiseDivide (const DenseVector &factors)
void CopyToDenseVector (Index num_indices, DenseVector *dense_vector) const
void PermutedCopyToDenseVector (const IndexPermutation &index_perm, Index num_indices, DenseVector *dense_vector) const
void AddMultipleToDenseVector (Fractional multiplier, DenseVector *dense_vector) const
void AddMultipleToSparseVectorAndDeleteCommonIndex (Fractional multiplier, Index removed_common_index, Fractional drop_tolerance, SparseVector *accumulator_vector) const
void AddMultipleToSparseVectorAndIgnoreCommonIndex (Fractional multiplier, Index removed_common_index, Fractional drop_tolerance, SparseVector *accumulator_vector) const
void ApplyIndexPermutation (const IndexPermutation &index_perm)
 Applies the index permutation to all entries: index = index_perm[index];.
void ApplyPartialIndexPermutation (const IndexPermutation &index_perm)
void MoveTaggedEntriesTo (const IndexPermutation &index_perm, SparseVector *output)
Fractional LookUpCoefficient (Index index) const
EntryIndex num_entries () const
 Note this method can only be used when the vector has no duplicates.
Index GetFirstIndex () const
Fractional GetFirstCoefficient () const
Index GetLastIndex () const
 Like GetFirst*, but for the last entry.
Fractional GetLastCoefficient () const
::util::IntegerRange< EntryIndex > AllEntryIndices () const
bool IsEqualTo (const SparseVector &other) const
std::string DebugString () const

Friends

class ColumnView

Additional Inherited Members

Public Types inherited from operations_research::glop::SparseVector< RowIndex, SparseColumnIterator >
typedef RowIndex Index
typedef StrictITIVector< Index, FractionalDenseVector
typedef Permutation< IndexIndexPermutation
using Iterator
using Entry
Protected Member Functions inherited from operations_research::glop::SparseVector< RowIndex, SparseColumnIterator >
void AddEntry (Index index, Fractional value)
void ResizeDown (EntryIndex new_size)
Index GetIndex (EntryIndex i) const
Fractional GetCoefficient (EntryIndex i) const
IndexMutableIndex (EntryIndex i)
FractionalMutableCoefficient (EntryIndex i)
Protected Attributes inherited from operations_research::glop::SparseVector< RowIndex, SparseColumnIterator >
std::unique_ptr< char[]> buffer_
EntryIndex num_entries_
EntryIndex capacity_
Indexindex_
 Pointers to the first elements of the index and coefficient arrays.
Fractionalcoefficient_
bool may_contain_duplicates_

Constructor & Destructor Documentation

◆ SparseColumn()

operations_research::glop::SparseColumn::SparseColumn ( )
inline

Definition at line 52 of file sparse_column.h.

Member Function Documentation

◆ ApplyPartialRowPermutation()

void operations_research::glop::SparseColumn::ApplyPartialRowPermutation ( const RowPermutation & p)
inline

Definition at line 62 of file sparse_column.h.

◆ ApplyRowPermutation()

void operations_research::glop::SparseColumn::ApplyRowPermutation ( const RowPermutation & p)
inline

Definition at line 59 of file sparse_column.h.

◆ EntryCoefficient()

Fractional operations_research::glop::SparseColumn::EntryCoefficient ( EntryIndex i) const
inline

Definition at line 56 of file sparse_column.h.

◆ EntryRow()

RowIndex operations_research::glop::SparseColumn::EntryRow ( EntryIndex i) const
inline

Use a separate API to get the row and coefficient of entry #i.

Definition at line 55 of file sparse_column.h.

◆ GetFirstRow()

RowIndex operations_research::glop::SparseColumn::GetFirstRow ( ) const
inline

Definition at line 57 of file sparse_column.h.

◆ GetLastRow()

RowIndex operations_research::glop::SparseColumn::GetLastRow ( ) const
inline

Definition at line 58 of file sparse_column.h.

◆ ColumnView

friend class ColumnView
friend

Definition at line 49 of file sparse_column.h.


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