bindings/python/dionysus/zigzag.py
author "Arnur Nigmetov <a.nigmetov@gmail.com>"
Mon, 02 Mar 2015 13:20:51 +0100
branchdev
changeset 281 6e883f004ebe
parent 188 23cb832e035d
permissions -rw-r--r--
Added executable to compute Wasserstein distance. Powering to 1/q is done in output. Maybe, should be changed in the function itself?

def add_simplices(zz, simplices, complex, birth, report_local = False):
    deaths = []
    for s in simplices:
        i,d = zz.add([complex[sb] for sb in s.boundary], (s.dimension(), birth))
        complex[s] = i
        if d is not None:
            if report_local or not d[1] == birth:
                deaths.append(d)
    return deaths
            

def remove_simplices(zz, simplices, complex, birth, report_local = False):
    deaths = []
    for s in simplices:
        d = zz.remove(complex[s], (s.dimension() - 1, birth))
        complex[s] = None
        if d is not None:
            if report_local or not d[1] == birth:
                deaths.append(d)
    return deaths