A Tangential Delaunay complex is a simplicial complex designed to reconstruct a \(k\)-dimensional manifold embedded in \(d\)-dimensional Euclidean space. The input is a point sample coming from an unknown manifold. The running time depends only linearly on the extrinsic dimension \(d\) and exponentially on the intrinsic dimension \(k\).
Details
The TangentialComplex class represents a tangential complex. After the computation of the complex, an optional post-processing called perturbation can be run to attempt to remove inconsistencies.
See also
Other filtrations and reconstructions:
AlphaComplex
,
RipsComplex
,
WitnessComplex
Methods
Method new()
TangentialComplex
constructor.
Usage
TangentialComplex$new(points, intrinsic_dim = NULL)
Arguments
points
Either a character string specifying the path to an OFF file which the points can be read from or a numeric matrix or list of numeric vectors specifying the points directly.
intrinsic_dim
An integer value specifying the intrinsic dimension of the manifold. This is nedded when points are provided as a numeric matrix or a list of numeric vectors. Defaults to
NULL
.
Method compute_tangential_complex()
This function computes the tangential complex.
Method create_simplex_tree()
Exports the complex into a simplex tree.
Returns
A SimplexTree
object storing the computed simplex
tree.
Method get_point()
This function returns the point corresponding to a given
vertex from the SimplexTree
.
Method set_max_squared_edge_length()
Sets the maximal possible squared edge length for the edges in the triangulations.
Arguments
max_squared_edge_length
A numeric value specifying the maximal possible squared edge length.
Examples
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
st <- tc$compute_tangential_complex()$create_simplex_tree()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
st <- tc$compute_tangential_complex()$create_simplex_tree()
tc$get_point(1)
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_inconsistent_simplices()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_inconsistent_stars()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_simplices()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_vertices()
}
if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$set_max_squared_edge_length(1)
}