examples/triangle/triangle-zigzag.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Fri May 11 17:06:55 2012 -0700 (2 weeks ago)
branchdev
changeset 251 870865d25958
parent 1493d15aca95dfb
permissions -rw-r--r--
Merge
     1 from dionysus import Simplex, ZigzagPersistence, \
     2                      vertex_cmp, data_cmp \
     3 #                    ,enable_log
     4 
     5 complex = {Simplex((0,),        0):     None,                   # A
     6            Simplex((1,),        1):     None,                   # B
     7            Simplex((2,),        2):     None,                   # C
     8            Simplex((0,1),       2.5):   None,                   # AB
     9            Simplex((1,2),       2.9):   None,                   # BC
    10            Simplex((0,2),       3.5):   None,                   # CA
    11            Simplex((0,1,2),     5):     None}                   # ABC
    12 
    13 print "Complex:"
    14 for s in sorted(complex.keys()): print s
    15 print
    16 
    17 #enable_log("topology/persistence")
    18 zz = ZigzagPersistence()
    19 
    20 # Add all the simplices
    21 b = 1
    22 for s in sorted(complex.keys(), data_cmp):
    23     print "%d: Adding %s" % (b, s)
    24     i,d = zz.add([complex[ss] for ss in s.boundary], b)
    25     complex[s] = i
    26     if d:   print "Interval (%d, %d)" % (d, b-1)
    27     b += 1
    28 
    29 # Remove all the simplices
    30 for s in sorted(complex.keys(), data_cmp, reverse = True):
    31     print "%d: Removing %s" % (b, s)
    32     d = zz.remove(complex[s], b)
    33     del complex[s]
    34     if d:   print "Interval (%d, %d)" % (d, b-1)
    35     b += 1