# Vector Representation: Complex Polynomial

Source:`R/representation-vector-methods.R`

`ComplexPolynomial.Rd`

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.

## 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`

.

### Method `apply()`

Applies the `ComplexPolnomial`

class on a single persistence
diagram and outputs the result.

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

## 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))
}
```