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