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.