multidim.PointCloud.make_pers1_rca1

PointCloud.make_pers1_rca1(cutoff=-1.0)

Run RCA1 and make a 1-dimensional homology.PersDiag for the edge-pairings for cycle generators.

This reruns self.make_pers0(cutoff) again, to make sure components are marked correctly.

Parameters:
cutoff: float

Maximum edge height to use for RCA1 algorithm. Higher edges ignored. (Default: -1, meaning use all edges.)

Returns:
none. Produces `self.pers1`
Table of edge pairs, similar to a persistence diagram.

Examples

>>> data = np.array([[0.,0.],[1.,0.],[0.,1.],[1.,1.]])
>>> pc = PointCloud(data, max_length=-1)
>>> print(pc.stratum[1])
     height   pos  rep  bdy0  bdy1
0  1.000000  True    0     0     1
1  1.000000  True    1     0     2
2  1.000000  True    2     1     3
3  1.000000  True    3     2     3
4  1.414214  True    4     0     3
5  1.414214  True    5     1     2
>>> pc.make_pers1_rca1()
>>> print(pc.pers1.diagram)
   birth_index  death_index  birth     death      pers
0            3            4    1.0  1.414214  0.414214
>>> data = np.array([[0.,0.],[1.,0.],[0.,1.],[1.,0.5]])
>>> pc = PointCloud(data, max_length=-1)
>>> print(pc.stratum[1])
     height   pos  rep  bdy0  bdy1
0  0.500000  True    0     1     3
1  1.000000  True    1     0     1
2  1.000000  True    2     0     2
3  1.118034  True    3     0     3
4  1.118034  True    4     2     3
5  1.414214  True    5     1     2
>>> pc.make_pers1_rca1()
>>> print(pc.pers1.diagram)
Empty DataFrame
Columns: [birth_index, death_index, birth, death, pers]
Index: []