Skip to contents

Computes complex polynomials from a list of persistence diagrams. The persistence diagram points are seen as the roots of some complex polynomial, whose coefficients are returned in a complex vector. See https://link.springer.com/chapter/10.1007%2F978-3-319-23231-7_27 for more details.

Author

Mathieu Carrière

Super classes

rgudhi::PythonClass -> rgudhi::SKLearnClass -> rgudhi::VectorRepresentationStep -> ComplexPolynomial

Methods

Inherited methods


Method new()

The ComplexPolynomial constructor.

Usage

ComplexPolynomial$new(polynomial_type = c("R", "S", "T"), threshold = 10)

Arguments

polynomial_type

A string specifying the Type of complex polynomial that is going to be computed (explained in https://link.springer.com/chapter/10.1007%2F978-3-319-23231-7_27). Choices are c("R", "S", "T"). Defaults to "R".

threshold

An integer value specifying the number of coefficients. This is the dimension of the complex vector of coefficients, i.e. the number of coefficients corresponding to the largest degree terms of the polynomial. If -1, this threshold is computed from the list of persistence diagrams by considering the one with the largest number of points and using the dimension of its corresponding complex vector of coefficients as threshold. Defaults to 10L.

Returns

An object of class ComplexPolynomial.


Method apply()

Applies the ComplexPolnomial class on a single persistence diagram and outputs the result.

Usage

ComplexPolynomial$apply(diag)

Arguments

diag

A 2-column tibble::tibble specifying a persistence diagram.

Returns

A tibble::tibble storing the complex polynomial representation of the persistence diagram in a table suitable for visualization.


Method clone()

The objects of this class are cloneable with this method.

Usage

ComplexPolynomial$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (FALSE) { # reticulate::py_module_available("gudhi")
X <- seq_circle(10)
ac <- AlphaComplex$new(points = X)
st <- ac$create_simplex_tree()
dgm <- st$compute_persistence()$persistence_intervals_in_dimension(0)
ds <- DiagramSelector$new(use = TRUE)
dgm <- ds$apply(dgm)
cp <- ComplexPolynomial$new()
cp$apply(dgm)
cp$fit_transform(list(dgm))
}