TangentialComplex: R6 Class for Tangential Complex

TangentialComplexR Documentation

R6 Class for Tangential Complex

Description

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.

Super class

rgudhi::PythonClass -> TangentialComplex

Methods

Public methods

Inherited 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.

Returns

A TangentialComplex object storing the tangential complex.


Method compute_tangential_complex()

This function computes the tangential complex.

Usage
TangentialComplex$compute_tangential_complex()
Details

In debug mode, it may raise a ValueError if the computed star dimension is too low. Try to set a bigger maximal edge length value via the ⁠$set_max_squared_edge_length()⁠ method if this happens.

Returns

The updated TangentialComplex class itself invisibly.


Method create_simplex_tree()

Exports the complex into a simplex tree.

Usage
TangentialComplex$create_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.

Usage
TangentialComplex$get_point(vertex)
Arguments
vertex

An integer value specifying the desired vertex.

Returns

A numeric vector storing the point corresponding to the input vertex.


Method num_inconsistent_simplices()

Usage
TangentialComplex$num_inconsistent_simplices()
Returns

An integer value storing the number of inconsistent simplicies.


Method num_inconsistent_stars()

Usage
TangentialComplex$num_inconsistent_stars()
Returns

An integer value storing the number of stars containing at least one inconsistent simplex.


Method num_simplices()

Usage
TangentialComplex$num_simplices()
Returns

An integer value storing the total number of simplices in stars (including duplicates that appear in several stars).


Method num_vertices()

Usage
TangentialComplex$num_vertices()
Returns

An integer value storing the number of vertices.


Method set_max_squared_edge_length()

Sets the maximal possible squared edge length for the edges in the triangulations.

Usage
TangentialComplex$set_max_squared_edge_length(max_squared_edge_length)
Arguments
max_squared_edge_length

A numeric value specifying the maximal possible squared edge length.

Details

If the maximal edge length value is too low, the ⁠$compute_tangential_complex()⁠ method will throw an exception in debug mode.

Returns

The updated TangentialComplex class itself invisibly.


Method clone()

The objects of this class are cloneable with this method.

Usage
TangentialComplex$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Author(s)

Clément Jamin

See Also

Other filtrations and reconstructions: AlphaComplex, RipsComplex, WitnessComplex

Examples


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
st <- tc$compute_tangential_complex()$create_simplex_tree()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
st <- tc$compute_tangential_complex()$create_simplex_tree()
tc$get_point(1)


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_inconsistent_simplices()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_inconsistent_stars()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_simplices()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$compute_tangential_complex()
tc$num_vertices()


X <- seq_circle(10)
tc <- TangentialComplex$new(points = X, intrinsic_dim = 1)
tc$set_max_squared_edge_length(1)


rgudhi documentation built on March 31, 2023, 11:38 p.m.