examples/rips/rips.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Mon Jul 25 23:21:29 2011 -0700 (10 months ago)
branchdev
changeset 244 66235db8d8b7
parent 130580eaa850c4f
permissions -rw-r--r--
Added cohomology/candidates counter to i/t/cohomology-persistence.hpp
dmitriy@126
     1
from    math        import fabs
dmitriy@126
     2
from    dionysus    import Rips, Filtration, StaticPersistence #, enable_log
dmitriy@126
     3
dmitriy@126
     4
# Simple minded pairwise distance functor distance
dmitriy@126
     5
class Distances:
dmitriy@126
     6
    def __len__(self):
dmitriy@126
     7
        return 5
dmitriy@126
     8
dmitriy@126
     9
    def __call__(self, x, y):
dmitriy@126
    10
        return fabs(y-x)
dmitriy@126
    11
dmitriy@126
    12
dist = Distances()
dmitriy@126
    13
r = Rips(dist)
dmitriy@181
    14
lst = Filtration()
dmitriy@181
    15
lst2 = Filtration()
dmitriy@126
    16
dmitriy@126
    17
#enable_log('rips')
dmitriy@126
    18
dmitriy@126
    19
r.generate(1, 3, lst.append)
dmitriy@126
    20
r.generate(1, 3, lst2.append, [0,2,4])
dmitriy@126
    21
dmitriy@126
    22
print "Rips complex on all vertices:", lst
dmitriy@126
    23
print "Rips complex on vertices [0,2,4]):", lst2
dmitriy@126
    24
dmitriy@126
    25
print "Values:", [map(r.eval, lst)]
dmitriy@126
    26
print "Sorted:", sorted(lst, r.cmp)
dmitriy@126
    27
dmitriy@126
    28
cofaces = []
dmitriy@126
    29
r.vertex_cofaces(2, 1, 3, cofaces.append)
dmitriy@126
    30
print "Cofaces of vertex 2:", cofaces
dmitriy@126
    31
dmitriy@126
    32
cofaces = []
dmitriy@126
    33
r.vertex_cofaces(2, 1, 3, cofaces.append, [0,2,4])
dmitriy@126
    34
print "Cofaces of vertex 2 on vertices [0,2,4]:", cofaces
dmitriy@126
    35
dmitriy@181
    36
f = lst
dmitriy@181
    37
f.sort(r.cmp)
dmitriy@126
    38
p = StaticPersistence(f)
dmitriy@126
    39
p.pair_simplices()
dmitriy@181
    40
smap = p.make_simplex_map(f)
dmitriy@126
    41
for s in p:
dmitriy@181
    42
    print smap[s], s.sign()