summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2017-11-20 16:39:51 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2017-11-20 16:39:51 +0000
commit3e1f686df11ec3e1ad02a18f12249621620ac969 (patch)
tree2b9a6c85a86e8e0c31a653ba60c712fd9bbbfc60
parente0c930251736ab31732787c4d94761e33f31ff4d (diff)
assign_filtration binding
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/set_dimension_mechanism_precision@2918 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 390839c0f172993f6117746d08c5a22c00778c5f
-rw-r--r--src/cython/cython/simplex_tree.pyx12
-rw-r--r--src/cython/include/Simplex_tree_interface.h4
-rwxr-xr-xsrc/cython/test/test_simplex_tree.py3
3 files changed, 19 insertions, 0 deletions
diff --git a/src/cython/cython/simplex_tree.pyx b/src/cython/cython/simplex_tree.pyx
index 9204d7c6..ff12dd48 100644
--- a/src/cython/cython/simplex_tree.pyx
+++ b/src/cython/cython/simplex_tree.pyx
@@ -37,6 +37,7 @@ cdef extern from "Simplex_tree_interface.h" namespace "Gudhi":
cdef cppclass Simplex_tree_interface_full_featured "Gudhi::Simplex_tree_interface<Gudhi::Simplex_tree_options_full_featured>":
Simplex_tree()
double simplex_filtration(vector[int] simplex)
+ void assign_simplex_filtration(vector[int] simplex, double filtration)
void initialize_filtration()
int num_vertices()
int num_simplices()
@@ -115,6 +116,17 @@ cdef class SimplexTree:
"""
return self.thisptr.simplex_filtration(simplex)
+ def assign_filtration(self, simplex, filtration):
+ """This function assigns the simplicial complex filtration value for a
+ given N-simplex.
+
+ :param simplex: The N-simplex, represented by a list of vertex.
+ :type simplex: list of int.
+ :param filtration: The simplicial complex filtration value.
+ :type filtration: float
+ """
+ self.thisptr.assign_simplex_filtration(simplex, filtration)
+
def initialize_filtration(self):
"""This function initializes and sorts the simplicial complex
filtration vector.
diff --git a/src/cython/include/Simplex_tree_interface.h b/src/cython/include/Simplex_tree_interface.h
index 09e7e992..54a4f824 100644
--- a/src/cython/include/Simplex_tree_interface.h
+++ b/src/cython/include/Simplex_tree_interface.h
@@ -52,6 +52,10 @@ class Simplex_tree_interface : public Simplex_tree<SimplexTreeOptions> {
return (Base::find(vh) != Base::null_simplex());
}
+ void assign_simplex_filtration(const Simplex& vh, Filtration_value filtration) {
+ Base::assign_filtration(Base::find(vh), filtration);
+ }
+
bool insert(const Simplex& simplex, Filtration_value filtration = 0) {
Insertion_result result = Base::insert_simplex_and_subfaces(simplex, filtration);
return (result.second);
diff --git a/src/cython/test/test_simplex_tree.py b/src/cython/test/test_simplex_tree.py
index 8af653d2..6dec5d94 100755
--- a/src/cython/test/test_simplex_tree.py
+++ b/src/cython/test/test_simplex_tree.py
@@ -154,6 +154,9 @@ def test_automatic_dimension():
assert st.dimension() == 2
assert st.upper_bound_dimension() == 2
+ st.assign_filtration([0, 1, 3], 0.7)
+ assert st.filtration([0, 1, 3]) == 0.7
+
st.remove_maximal_simplex([0, 1, 3])
assert st.upper_bound_dimension() == 2
assert st.dimension() == 1