author Aravindakshan Babu <>
Wed, 18 Aug 2010 12:05:18 -0700
changeset 220 d07d77561661
parent 219 5311343eb2f5
child 228 12e2daa0e03a
permissions -rw-r--r--
Removed the points iterator in PersistenceDaigram; replaced it with a __iter__ method. Got rid of some python code in, since it was not needed with the above change. Changed the docs to reflect this.

from    _dionysus   import *
from    distances   import l2, ExplicitDistances, points_file
from    zigzag      import *

def init_with_none(self, iter, data = None):        # convenience: data defaults to None
    self._cpp_init_(iter, data)

def repr_with_data(self):
    str = self._cpp_repr_()
    if type( == float:
        str += ' %f' %
    return str

Simplex._cpp_init_ =    Simplex.__init__
Simplex.__init__   =    init_with_none
Simplex._cpp_repr_ =    Simplex.__repr__
Simplex.__repr__   =    repr_with_data

def data_cmp(s1, s2):
    return cmp(,

def data_dim_cmp(s1,s2):
    return cmp(s1.dimension(), s2.dimension()) or data_cmp(s1,s2)

def vertex_dim_cmp(s1, s2):
    return cmp(s1.dimension(), s2.dimension()) or vertex_cmp(s1, s2)

# TBD: Port this into C++
def point_iterator( point ):

    yield point.x
    yield point.y
    if not is None:

Point.__iter__ = point_iterator