diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-02-16 16:53:28 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2016-02-16 16:53:28 +0000 |
commit | c829c36217c003b2068750aa8f23b6082636e6e1 (patch) | |
tree | 1549dbf60b3bc05233400a31166e8d5202a7ba11 /src/cython/gudhi.pyx | |
parent | e3af32a438b9e2d8fc1e183c66d674b828408d18 (diff) |
Mini Simplex tree fix
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/ST_cythonize@1027 636b058d-ea47-450e-bf9e-a15bfbe3eedb
Former-commit-id: 0b5933295c0e486f4f4541f8e82aff653ce9083c
Diffstat (limited to 'src/cython/gudhi.pyx')
-rw-r--r-- | src/cython/gudhi.pyx | 105 |
1 files changed, 99 insertions, 6 deletions
diff --git a/src/cython/gudhi.pyx b/src/cython/gudhi.pyx index ae9669f4..dd87f4bb 100644 --- a/src/cython/gudhi.pyx +++ b/src/cython/gudhi.pyx @@ -4,6 +4,7 @@ from libcpp.utility cimport pair cimport cgudhi + # SimplexTree python interface cdef class SimplexTree: cdef cgudhi.Simplex_tree_interface[cgudhi.Simplex_tree_options_full_featured] *thisptr @@ -37,17 +38,57 @@ cdef class SimplexTree: complex.push_back(i) return self.thisptr.find_simplex(complex) def insert(self, simplex, filtration = 0.0): - return self.thisptr.insert_simplex(simplex, <double>filtration) + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + return self.thisptr.insert_simplex(complex, <double>filtration) def insert_with_subfaces(self, simplex, filtration = 0.0): - return self.thisptr.insert_simplex_and_subfaces(simplex, <double>filtration) + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + return self.thisptr.insert_simplex_and_subfaces(complex, <double>filtration) def get_filtered_tree(self): - return self.thisptr.get_filtered_tree() + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_filtered_tree() + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct def get_skeleton_tree(self, dim): - return self.thisptr.get_skeleton_tree(<int>dim) + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_skeleton_tree(<int>dim) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct def get_star_tree(self, simplex): - return self.thisptr.get_star_tree(simplex) + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_star_tree(complex) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct def get_coface_tree(self, simplex, dim): - return self.thisptr.get_coface_tree(simplex, <int>dim) + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_coface_tree(complex, <int>dim) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct cdef class MiniSimplexTree: @@ -70,3 +111,55 @@ cdef class MiniSimplexTree: for i in simplex: complex.push_back(i) return self.thisptr.find_simplex(complex) + def insert(self, simplex): + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + return self.thisptr.insert_simplex(complex, 0.0) + def insert_with_subfaces(self, simplex, filtration = 0.0): + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + return self.thisptr.insert_simplex_and_subfaces(complex, <double>filtration) + def get_filtered_tree(self): + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_filtered_tree() + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct + def get_skeleton_tree(self, dim): + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_skeleton_tree(<int>dim) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct + def get_star_tree(self, simplex): + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_star_tree(complex) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct + def get_coface_tree(self, simplex, dim): + cdef vector[int] complex + for i in simplex: + complex.push_back(i) + cdef vector[pair[vector[int], double]] coface_tree = self.thisptr.get_coface_tree(complex, <int>dim) + ct = [] + for filtered_complex in coface_tree: + v = [] + for vertex in filtered_complex.first: + v.append(vertex) + ct.append((v,filtered_complex.second)) + return ct |