Regina Calculation Engine
Public Member Functions | Public Attributes | List of all members
regina::LPCol< LPConstraint > Struct Template Reference


Used by LPInitialTableaux<LPConstraint> to store a single column of the adjusted matching equation matrix in sparse form. More...

#include <enumerate/treelp.h>

Inheritance diagram for regina::LPCol< LPConstraint >:

Public Member Functions

 LPCol ()
 Initialises an empty column. More...
 
void push (unsigned row, int val)
 Adds the given entry in the given row to this column. More...
 
 LPCol (const LPCol &)=delete
 
LPColoperator= (const LPCol &)=delete
 

Public Attributes

unsigned nPlus
 The total number of +1 entries in this column. More...
 
unsigned plus [4]
 The rows containing these +1 entries, in any order. More...
 
unsigned nMinus
 The total number of -1 entries in this column. More...
 
unsigned minus [4]
 The rows containing these -1 entries, in any order. More...
 

Detailed Description

template<class LPConstraint>
struct regina::LPCol< LPConstraint >


Used by LPInitialTableaux<LPConstraint> to store a single column of the adjusted matching equation matrix in sparse form.

See the LPInitialTableaux class notes for details on what the "adjusted matching equation matrix" means.

Specifically, an LPCol object stores the location of each +1 entry, and the location of each -1 entry. If some entry in the matrix is greater than +1 or less than -1, we represent it using multiple +1 or -1 entries in the same matrix location.

For any additional rows that represent extra linear constraints, we inherit the coefficients directly from LPConstraint::Coefficients.

Warning
The API for this class has not yet been finalised. This means that the class interface may change in new versions of Regina, without maintaining backward compatibility. If you use this class directly in your own code, please watch the detailed changelogs upon new releases to see if you need to make changes to your code.
Python
Not present.

Constructor & Destructor Documentation

◆ LPCol()

template<class LPConstraint >
regina::LPCol< LPConstraint >::LPCol ( )
inline

Initialises an empty column.

Member Function Documentation

◆ push()

template<class LPConstraint >
void regina::LPCol< LPConstraint >::push ( unsigned  row,
int  val 
)
inline

Adds the given entry in the given row to this column.

Precondition
No entry in the given row has been added to this column yet.
The sum of absolute values of all entries in this column must never exceed 4.
Parameters
rowthe row containing the given value.
valthe value at this location in the matrix.

Member Data Documentation

◆ minus

template<class LPConstraint >
unsigned regina::LPCol< LPConstraint >::minus[4]

The rows containing these -1 entries, in any order.

The same row may appear in this list more than once (indicating a -2, -3 or -4 entry in the matrix).

◆ nMinus

template<class LPConstraint >
unsigned regina::LPCol< LPConstraint >::nMinus

The total number of -1 entries in this column.

◆ nPlus

template<class LPConstraint >
unsigned regina::LPCol< LPConstraint >::nPlus

The total number of +1 entries in this column.

◆ plus

template<class LPConstraint >
unsigned regina::LPCol< LPConstraint >::plus[4]

The rows containing these +1 entries, in any order.

The same row may appear in this list more than once (indicating a +2, +3 or +4 entry in the matrix).


The documentation for this struct was generated from the following files:

Copyright © 1999-2021, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@maths.uq.edu.au).