examples/rips/rips.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Wed Apr 15 14:17:21 2009 -0700 (3 years ago)
branchdev
changeset 130 580eaa850c4f
parent 1263c3e77ac43d2
child 1811ee6edc17cb6
permissions -rw-r--r--
Placed all Python bindings code into dionysus::python namespace
     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 = []
    15 lst2 = []
    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 = Filtration(lst, r.cmp)
    37 p = StaticPersistence(f)
    38 p.pair_simplices()
    39 for s in p:
    40     print lst[f[p(s)]], s.sign()