summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Nerve_GIC/include/gudhi/GIC.h18
-rw-r--r--src/cython/cython/nerve_gic.pyx9
2 files changed, 27 insertions, 0 deletions
diff --git a/src/Nerve_GIC/include/gudhi/GIC.h b/src/Nerve_GIC/include/gudhi/GIC.h
index 2c37dfae..242ecf7d 100644
--- a/src/Nerve_GIC/include/gudhi/GIC.h
+++ b/src/Nerve_GIC/include/gudhi/GIC.h
@@ -389,6 +389,24 @@ class Cover_complex {
distances[index[boost::source(*ei, one_skeleton)]][index[boost::target(*ei, one_skeleton)]]);
}
+ public:
+ /** \brief Reads and stores the distance matrices from vector stored in memory.
+ *
+ * @param[in] distance_matrix input vector representing the distance matrix.
+ *
+ */
+ template <class InputRange>
+ void set_distances_from_range(InputRange const & distance_matrix) {
+ n = distance_matrix.size(); data_dimension = 0; point_cloud_name = "matrix";
+ for(int i = 0; i < n; i++){
+ point_cloud.emplace_back();
+ boost::add_vertex(one_skeleton_OFF);
+ vertices.push_back(boost::add_vertex(one_skeleton));
+ cover.emplace_back();
+ }
+ distances = distance_matrix;
+ }
+
public: // Pairwise distances.
/** \private \brief Computes all pairwise distances.
*/
diff --git a/src/cython/cython/nerve_gic.pyx b/src/cython/cython/nerve_gic.pyx
index 01dd0a4b..5f01b379 100644
--- a/src/cython/cython/nerve_gic.pyx
+++ b/src/cython/cython/nerve_gic.pyx
@@ -68,6 +68,7 @@ cdef extern from "Nerve_gic_interface.h" namespace "Gudhi":
void plot_DOT()
void plot_OFF()
void set_point_cloud_from_range(vector[vector[double]] cloud)
+ void set_distances_from_range(vector[vector[double]] distance_matrix)
# CoverComplex python interface
cdef class CoverComplex:
@@ -111,6 +112,14 @@ cdef class CoverComplex:
"""
return self.thisptr.set_point_cloud_from_range(cloud)
+ def set_distances_from_range(self, distance_matrix):
+ """ Reads and stores the input distance matrix from a vector stored in memory.
+
+ :param distance_matrix: Input vector containing the distance matrix.
+ :type distance_matrix: vector[vector[double]]
+ """
+ return self.thisptr.set_distances_from_range(distance_matrix)
+
def compute_confidence_level_from_distance(self, distance):
"""Computes the confidence level of a specific bottleneck distance
threshold.