Module ateams.arithmetic.LinBoxWrapper
Functions
def ComputePercolationEvents(boundary, filtration, homology, p, breaks)
-
Uses a variant of the Chen/Kerber (2011) and PHAT (2017) twist_reduce algorithm to compute the persistent homology of the complex specified by the flat boundary matrix and the filtration over the field \mathbb{Z}/p\mathbb{Z}.
Args
boundary
- Full boundary matrix (i.e.
Cubical.matrices.full
). filtration
- A list of indices specifying the order in which the cells in the complex will be added. The assumed order is adding cells in order of dimension.
homology
- The homology group for which persistence is computed.
p
- Characteristic of the field \mathbb{Z}/p\mathbb{Z}.
breaks
- Index locations for cells of each degree (i.e.
Cubical.breaks
).
def LanczosKernelSample(coboundary, zeros, faces, columns, p, maxTries=8)
-
Uses the LinBox (Block?) Lanczos black-box solver to get a uniform random element of the kernel of the coboundary.
Args
coboundary
- Memory-contiguous one-dimensional coboundary array,
like that of the
Cubical
Complex object. zeros
- Memory-contiguous array of row indices that will be included in the coboundary submatrix.
faces
- The number of faces per plaquette.
columns
- Integer representing the number of columns in the coboundary submatrix; should be the total number of faces in the complex.
p
- Characteristic of the field \mathbb Z/p\mathbb Z.
maxTries
- How many times do we try to get a nonzero solution from the black-box solver? Default is 8.
Returns
A C++
std::vector
with spin assignments. def SubLanczosKernelSample(coboundary, zeroRows, zeroColumns, p, maxTries=8)
-
Uses the LinBox (Block?) Lanczos black-box solver to get a uniform random element of the kernel of the coboundary.
Args
coboundary
- Memory-contiguous one-dimensional coboundary array,
like that of the
Cubical
Complex object. zeros
- Memory-contiguous array of row indices that will be included in the coboundary submatrix.
p
- Characteristic of the field \mathbb Z/p\mathbb Z.
maxTries
- How many times do we try to get a nonzero solution from the black-box solver? Default is 8.
Returns
A C++
std::vector
with spin assignments.