examples/triangle/triangle.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Fri May 11 17:06:55 2012 -0700 (2 weeks ago)
branchdev
changeset 251 870865d25958
parent 1811ee6edc17cb6
permissions -rw-r--r--
Merge
     1 from dionysus import Simplex, Filtration, StaticPersistence, \
     2                      vertex_cmp, data_cmp, data_dim_cmp \
     3 
     4 complex = [Simplex((0,),        0),                 # A
     5            Simplex((1,),        1),                 # B
     6            Simplex((2,),        2),                 # C
     7            Simplex((0,1),       2.5),               # AB
     8            Simplex((1,2),       2.9),               # BC
     9            Simplex((0,2),       3.5),               # CA
    10            Simplex((0,1,2),     5)]                 # ABC
    11 
    12 print "Complex:", complex
    13 print "Vertex: ", sorted(complex, vertex_cmp)
    14 print "Data:   ", sorted(complex, data_cmp)
    15 print "DataDim:", sorted(complex, data_dim_cmp)
    16 
    17 f = Filtration(complex, data_cmp)
    18 print "Complex in the filtration order:", ', '.join((str(s) for s in f))
    19 
    20 p = StaticPersistence(f)
    21 print "Persistence initialized"
    22 p.pair_simplices(True)
    23 print "Simplices paired"
    24 
    25 smap = p.make_simplex_map(f)
    26 for i in p:
    27     print i.sign(), i.pair().sign()
    28     print "%s (%d) - %s (%d)" % (smap[i], i.sign(), smap[i.pair()], i.pair().sign())
    29     print "Cycle (%d):" % len(i.cycle), " + ".join((str(smap[ii]) for ii in i.cycle))
    30 
    31 print "Number of unpaired simplices:", len([i for i in p if i.unpaired()])