Indicates which broad class of vector encodings a particular tableaux is designed to work with.
More...
|
constexpr | LPSystem (NormalEncoding enc) |
| Identifies which class of vector encodings the given encoding falls into. More...
|
|
constexpr | LPSystem (const LPSystem &)=default |
| Creates a new copy of the given class of vector encodings. More...
|
|
LPSystem & | operator= (const LPSystem &)=default |
| Sets this to be a copy of the given class of vector encodings. More...
|
|
constexpr bool | operator== (const LPSystem &other) const |
| Determines whether this and the given object represent the same class of vector encodings. More...
|
|
constexpr bool | operator!= (const LPSystem &other) const |
| Determines whether this and the given object represent different classes of vector encodings. More...
|
|
constexpr bool | normal () const |
| Identifies whether this is one of the two classes of encodings that represent normal or almost normal surfaces. More...
|
|
constexpr bool | angle () const |
| Identifies whether this is the class of encodings that represent angle structures. More...
|
|
constexpr bool | standard () const |
| Identifies whether this is the class of standard encodings. More...
|
|
constexpr bool | quad () const |
| Identifies whether this is the class of quad encodings. More...
|
|
constexpr size_t | coords (size_t nTet) const |
| Returns the number of coordinate columns that a tableaux will use for this class of vector encodings, with respect to a particular triangulation. More...
|
|
void | writeTextShort (std::ostream &out) const |
| Writes a short text representation of this object to the given output stream. More...
|
|
void | writeTextLong (std::ostream &out) const |
| A default implementation for detailed output. More...
|
|
std::string | str () const |
| Returns a short text representation of this object. More...
|
|
std::string | utf8 () const |
| Returns a short text representation of this object using unicode characters. More...
|
|
std::string | detail () const |
| Returns a detailed text representation of this object. More...
|
|
Indicates which broad class of vector encodings a particular tableaux is designed to work with.
This type is used by Regina's linear programming machinery, and in particular by the LPInitialTableaux class.
By "broad class of vector encodings", we allow only three options:
- standard encodings, which cover all normal surface encodings that include triangle coordinates, and where the tableaux holds triangle and quadrilateral columns but nothing else;
- quad encodings, which cover all normal surface encodings that do not include triangle coordinates, and where the tableaux holds quadrilateral columns but nothing else;
- angle encodings, which cover angle structure encodings, and where the tableaux holds angle columns as well as a single scaling column.
When working with almost normal coordinate systems, we represent octagons as pairs of intersecting quadrilaterals; see the LPData class notes for more information on how this works. This means, for example, that the coordinate system NS_AN_STANDARD will fall under the class of standard encodings, and NS_AN_QUAD_OCT will fall under the class of quad encodings.
These objects are small enough to pass by value and swap with std::swap(), with no need for any specialised move operations or swap functions.
template<class T , bool supportsUtf8 = false>
Returns a detailed text representation of this object.
This text may span many lines, and should provide the user with all the information they could want. It should be human-readable, should not contain extremely long lines (which cause problems for users reading the output in a terminal), and should end with a final newline. There are no restrictions on the underlying character set.
- Returns
- a detailed text representation of this object.
template<class T , bool supportsUtf8 = false>
Returns a short text representation of this object.
This text should be human-readable, should use plain ASCII characters where possible, and should not contain any newlines.
Within these limits, this short text ouptut should be as information-rich as possible, since in most cases this forms the basis for the Python str()
and repr()
functions.
- Python
- The Python "stringification" function
str()
will use precisely this function, and for most classes the Python repr()
function will incorporate this into its output.
- Returns
- a short text representation of this object.
template<class T , bool supportsUtf8 = false>
Returns a short text representation of this object using unicode characters.
Like str(), this text should be human-readable, should not contain any newlines, and (within these constraints) should be as information-rich as is reasonable.
Unlike str(), this function may use unicode characters to make the output more pleasant to read. The string that is returned will be encoded in UTF-8.
- Returns
- a short text representation of this object.