File: ordering.h

package info (click to toggle)
regina-normal 7.4.1-1.1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 154,244 kB
  • sloc: cpp: 295,026; xml: 9,992; sh: 1,344; python: 1,225; perl: 616; ansic: 138; makefile: 26
file content (75 lines) | stat: -rw-r--r-- 2,509 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
  This file contains docstrings for use in the Python bindings.
  Do not edit! They were automatically extracted by ../gendoc.sh.
 */

#if defined(__GNUG__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#endif

namespace regina::python::doc {


// Docstring regina::python::doc::PosOrder
static const char *PosOrder =
R"doc(A comparison object that sorts hyperplanes by position vectors. This
ordering is described in "Optimizing the double description method for
normal surface enumeration", B.A. Burton, Mathematics of Computation
79 (2010), 453-484.

This comparison object is used to sort hyperplanes into a good order
before enumerating vertex or fundamental normal surfaces A hyperplane
is described by a row of the *subspace* matrix, as passed to an
enumeration routine such as DoubleDescription::enumerate() or
HilbertDual::enumerate().

The ordering is defined as follows. For each hyperplane, we create a
_position vector_ (h_1, ..., h_f), where h_i is 0 if the hyperplane
contains the ith coordinate axis, or 1 if not. We then compare these
position vectors lexicographically.

A PosOrder object behaves like a reference: it is lightweight and can
be copy-constructed cheaply, but it does not support assignments or
swaps.)doc";

namespace PosOrder_ {

// Docstring regina::python::doc::PosOrder_::__call
static const char *__call =
R"doc(Determines whether the hyperplane described by row *i* of the matrix
is smaller than the hyperplane described by row *j*. Here "smaller" is
defined by position vectors; see the PosOrder class notes for details.

Parameter ``i``:
    the first matrix row index; this must be between 0 and
    matrix.rows()-1 inclusive, where *matrix* is the matrix passed to
    the class constructor.

Parameter ``j``:
    the second matrix row index; this must also be between 0 and
    matrix.rows()-1 inclusive.

Returns:
    ``True`` if and only if the hyperplane described by row *i* is
    smaller than the hyperplane described by row *j*.)doc";

// Docstring regina::python::doc::PosOrder_::__copy
static const char *__copy = R"doc(Creates a clone of the given helper objet.)doc";

// Docstring regina::python::doc::PosOrder_::__init
static const char *__init =
R"doc(Creates a new helper object for comparing hyperplanes.

Parameter ``matrix``:
    the *subspace* matrix as passed to the normal surface enumeration
    routine.)doc";

}

} // namespace regina::python::doc

#if defined(__GNUG__)
#pragma GCC diagnostic pop
#endif