CyclingSignatures.ATTools.AbstractCell — Type
The following methods must be implemented:
- boundaryOperator
CyclingSignatures.ATTools.CoredSparseMatrix — Type
This matrix type assumes that the number of entries in each row never increases.
Because of this, we have
- getindex for a row in log(nnz)
- getindex for a column in #(nnz in column)
CyclingSignatures.ATTools.allBoundaryMatrices — Method
function allBoundaryMatrices(C::CellComplex)First, computes all boundary matrices. Then, returns them.
CyclingSignatures.ATTools.apply! — Method
function apply!(A::Array{T,2}, addOp::ColAddOperation{T}) where T <: IntegerApplies a ColAddOperation.
CyclingSignatures.ATTools.apply! — Method
function apply!(A::AbstractArray{T,2}, crOp::CoreductionOperation{T}) where T <: IntegerApplies the coreduction operation. See restore for details.
CyclingSignatures.ATTools.basicCoreductions! — Method
function basicReductions!(D1::AbstractSparseMatrix{T,Int}; kernelOperations::Stack{KernelOperation}) where T <: IntegerPerforms basic coreductions, i.e. reductions of rows with up to two entries.
CyclingSignatures.ATTools.basicReductions! — Method
function basicReductions!(D1::AbstractSparseMatrix{T,Int}, kernelOperations::Stack{KernelOperation}=Stack{KernelOperation}, colRemoved::Vector{Bool}=zeros(Bool,size(D1,2))) where T <: IntegerPerforms basic reductions, i.e. reductions of columns with up to two entries.
CyclingSignatures.ATTools.boundaryMatrix — Method
function boundaryMatrix(C::CellComplex, i)Returns the i-th boundary matrix of the complex C
CyclingSignatures.ATTools.boundaryMatrix — Method
function boundaryMatrix(C1, C2)Given a pair of cubical chain groups with bdy(C2) ⊂ C1 this computes the boundary matrix
CyclingSignatures.ATTools.circularCoordinates — Function
function circularCoordinates(h, A)Computes a matrix A such that A[i,:] contains the values of a circle valued function corresponding to the i-th generator of h on the basis of C^0 of h which was used to compute h.D0.
CyclingSignatures.ATTools.coboundaryMatrix — Method
function coboundaryMatrix(C::CellComplex, i)Returns the i-th coboundary matrix of the complex C
CyclingSignatures.ATTools.d1Kernel! — Method
function d1Kernel!(A::Array{2,T},kerOp::Stack{KernelOperation}=Stack{KernelOperation}(),colRemoved::Vector{Bool}=zeros(Bool,size(D0,1))) where {T <: Integer}Computes the kernel using row reduction.
CyclingSignatures.ATTools.d1Kernel! — Method
function d1Kernel!(D1::AbstractSparseMatrix{T,Int},kerOp::Stack{KernelOperation},preprocess=colRemoved) where {T <: Integer}Computes the kernel of a 1st boundary matrix.
CyclingSignatures.ATTools.findMaxSpanningTree — Function
function findMaxSpanningTree(D0,D1; colRemoved::Vector{Bool}=zeros(Bool,size(D0,1)))Finds a maximal spanning tree in D0. Edge weight is number of entries in the corresponding column in D1.
CyclingSignatures.ATTools.getUnitVectors — Function
function getUnitVectors(indices, m, T=Int)Returns a sparse (m,lenth(indices))-matrix of type T with i-th column being indices[i]-th standard basis vector.
CyclingSignatures.ATTools.liftOfCircleValuedFunction — Function
function liftOfCircleValuedFunction(h::H1, A, LSQR_ATOL = LSQR_TOL, LSQR_RTOL = LSQR_TOL)Computes a matrix A such that A[i,:] contains the values of a lift of the circle valued function corresponding to the i-th generator of h on the basis of C^0 of h which was used to compute h.D0. This is useful for example to compute the norm of a generator.
CyclingSignatures.ATTools.norms — Function
function norms(h::H1)computes the l2 norms of the generators
CyclingSignatures.ATTools.one_skeleton — Method
function oneSkeleton(D::AbstractArray{T,2}, r) where T <: NumberReturns the 1-skeleton of the VR-complex with distance matrix D. D only need the lower left entries.
CyclingSignatures.ATTools.redCored! — Method
function redCored!(D1::AbstractSparseMatrix{T,Int}, ) where {T <: Integer}CyclingSignatures.ATTools.removeMaxSpanningTree! — Method
function removeMaxSpanningTree!(D0::AbstractSparseMatrix{T0,Int},D1::AbstractSparseMatrix{T1,Int}; colRemoved::Vector{Bool}=zeros(Bool,size(D0,1))) where {T0 <: Integer, T1 <: Integer}Finds a maximal spanning tree in the graph defined by D0 with the edges in colRemoved ignored. It then removes the spanning tree by setting the corresponding columns in D1 to zero.
CyclingSignatures.ATTools.restore! — Method
function restore!(A::Array{T,2}, addOp::ColAddOperation{T}) where T <: IntegerRestores a ColAddOperation. Therefore, it is the row(!) operation modeled by the same matrix.
CyclingSignatures.ATTools.restore! — Method
function restore!(A::Array{T,2}, addOp::ColAddOperation{T}) where T <: IntegerRestores a coreduction two-reduction. Start is i j [****|*****|**** ****|*****|**** –- x –- y –- ****|*****|**** ****|*****|****]
The reduction had to be performed with discardColValuekeepCol - keepColValueDiscardCol
CyclingSignatures.ATTools.restore! — Method
function restore!(A::Array{T,2}, basicReduction::ReductionOperation{T}) where T <: IntegerRestores the kernel after a basic reduction operation (where a row gets removed).
CyclingSignatures.ATTools.vr_incremental — Method
function vrIncremental(X::AbstractArray{T,2}, d, r; maxdim=size(X,1)) where T <: NumberCompute VR complex for a given point cloud X, distance function d and radius r.
CyclingSignatures.ATTools.vr_incremental — Method
function vrIncremental(D::AbstractArray{T,2}, r; maxdim=size(D,1)) where T <: NumberConstructs the VR-complex from a distance matrix using the incremental construction.