# Theory

DREiMac is based on cohomology and Eilenberg-MacLane spaces, and turns persistent cohomology computations into topology-preserving coordinates for data. We now give details about what this means. For more information, please see the corresponding papers for the circular coordinates algorithm [1], the toroidal coordinates algorithm [2], the projective coordinates algorithms [3], and the lens coordinate algorithm [4].

## Inputs

DREiMac currently implements three cohomological coordinates procedures: the circular coordinates algorithm, the toroidal coordinates algorithm, and the real projective coordinates algorithm. All procedures take 4 main parameters:

A dataset

`X`

, which can be either a point cloud \(X \subseteq \mathbb{R}^n\) or a distance matrix.

The dataset is interpreted as a finite sample of a continuous space \(X \subseteq M\). In order to speed-up computations, a subsample of the initial dataset is computed \(L \subseteq X\), using a maxmin sampling procedure.

The

`n_landmarks`

parameter determines the size of the subsample \(L\).

Then, a persistent cohomology computation is done using the Vietoris-Rips complex \(R(L)\) of the metric space \(L\), which returns the persistence diagram of \(PH^n(R(L),\mathbb{Z}/p\mathbb{Z})\). For this, a cohomological dimension \(n \in \mathbb{N}\) and a prime \(p\) must be chosen. Right now, DREiMac supports arbitrary primes but only \(n=1\). The choice of these parameters will depend on which of DREiMac’s cohomological coordinates one is using.

For circular and toroidal coordinates, the user can choose any prime \(p\) and \(n\) is set to \(1\) automatically.

For real projective coordinates, the prime \(p\) is set to \(2\) and \(n\) is set to \(1\), automatically.

For complex projective coordinates, the user can choose any prime \(p\) and \(n\) is set to \(2\) automatically.

For lens coordinates, the user can choose any prime \(p\) and \(n\) is set to \(1\) automatically.

Then, looking at the persistence diagram, a cohomology class is chosen by the user, as follows.

3. The `cocycle_idx`

parameter is used to select a persistent cohomology class \(\eta \in PH^n(R(L);\mathbb{Z}/p\mathbb{Z})\) by indicating its index when the persistent cohomology classes are ordered with respect to their persistence (i.e., their distance to the diagonal).
In the case of the toroidal coordinates algorithm, the corresponding parameter `cocycle_idxs`

specifies a list of persistent cohomology classes \(\eta_1 , \dots, \eta_\ell \in PH^1(R(L);\mathbb{Z}/p\mathbb{Z})\), such that the intersection of all of their supports is non-empty.

Finally:

The parameter \(0 <\)

`perc`

\(< 1\) specifies the time in the filtration to construct the coordinates.

## Ouput

With these choices, DREiMac returns a continuous function

where:

\(K(G,n)\) is an Eilenberg-MacLane space (EM space). Specifically, when using the

Circular coordinates algorithm, the EM space is the circle \(S^1\);

Toroidal coordinates algorithm with \(\ell\) cohomology classes, the EM space is the \(\ell\)-torus, i.e., the cartesian product of \(\ell\) circles \(S^1 \times \dots \times S^1\);

Real projective coordinates algorithm, the EM space is a real projective space \(RP^k\). In this case, the dimension \(k\) is selected using the

`proj_dim`

parameter.Complex projective coordinates algorithm, the EM space is a complex projective space \(CP^k\). In this case, the complex dimension \(k\) is selected using the

`proj_dim`

parameter. Note that in this case the real dimension will be \(2k\).Lens coordinates algorithm, the EM space is a lens space. In this case, the dimension is selected using the \(k =\)

`complex_dim`

, which results in a lens space of real dimension \(2 k-1\). The prime determining the lens space is selected using the`prime`

parameter.

The space \(L^{\alpha}\) is the \(\alpha\)-thickening of \(L\) in \(M\), defined as \(L^{\alpha} = \{m \in M : d_M(m,L) < \alpha\}\).

The number \(\alpha\) is computed using the parameter `perc`

and the birth and death of the persistent cohomology class \(\eta\) as follows: if the parameter `standard_range`

is `True`

, then

where \(\rho =\) `perc`

. If `standard_range`

is `False`

, then

In the case of the toroidal coordinates algorithm, one replaces \(birth(\eta)\) with \(\max\{birth(\eta_i)\}\) and \(death(\eta)\) with \(\min\{death(\eta_i)\}\).

## Guarantee

When the parameter `standard_range`

is set to `True`

,
the output map \(f_\eta : L^{\alpha} \to K(G,n)\) is guaranteed to preserve the cohomology class \(\eta\), in the following sense.
When one takes the pullback of the fundamental class of \(K(G,n)\) along the map \(f_\eta\), one gets back a cohomology class corresponding to the user-chosen \(\eta\).