diff options
Diffstat (limited to 'src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h')
-rw-r--r-- | src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h b/src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h index 105f9059..644c1cd8 100644 --- a/src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h +++ b/src/Bottleneck/include/gudhi/Persistence_diagrams_graph.h @@ -55,7 +55,7 @@ class Persistence_diagrams_graph { int corresponding_point_in_v(int u_point_index) const; double distance(int u_point_index, int v_point_index) const; int size() const; - std::vector<double>* sorted_distances(); + std::unique_ptr< std::vector<double> > sorted_distances(); private: std::vector<Diagram_point> u; @@ -64,7 +64,7 @@ class Persistence_diagrams_graph { Diagram_point get_v_point(int v_point_index) const; }; -inline int null_point_index() { +/* inline */ int null_point_index() { return -1; } @@ -85,47 +85,48 @@ Persistence_diagrams_graph::Persistence_diagrams_graph(const Persistence_diagram Persistence_diagrams_graph::Persistence_diagrams_graph() : u(), v() { } -inline bool Persistence_diagrams_graph::on_the_u_diagonal(int u_point_index) const { +/* inline */ bool Persistence_diagrams_graph::on_the_u_diagonal(int u_point_index) const { return u_point_index >= static_cast<int> (u.size()); } -inline bool Persistence_diagrams_graph::on_the_v_diagonal(int v_point_index) const { +/* inline */ bool Persistence_diagrams_graph::on_the_v_diagonal(int v_point_index) const { return v_point_index >= static_cast<int> (v.size()); } -inline int Persistence_diagrams_graph::corresponding_point_in_u(int v_point_index) const { +/* inline */ int Persistence_diagrams_graph::corresponding_point_in_u(int v_point_index) const { return on_the_v_diagonal(v_point_index) ? v_point_index - static_cast<int> (v.size()) : v_point_index + static_cast<int> (u.size()); } -inline int Persistence_diagrams_graph::corresponding_point_in_v(int u_point_index) const { +/* inline */ int Persistence_diagrams_graph::corresponding_point_in_v(int u_point_index) const { return on_the_u_diagonal(u_point_index) ? u_point_index - static_cast<int> (u.size()) : u_point_index + static_cast<int> (v.size()); } -inline double Persistence_diagrams_graph::distance(int u_point_index, int v_point_index) const { +/* inline */ double Persistence_diagrams_graph::distance(int u_point_index, int v_point_index) const { // could be optimized for the case where one point is the projection of the other if (on_the_u_diagonal(u_point_index) && on_the_v_diagonal(v_point_index)) return 0; Diagram_point p_u = get_u_point(u_point_index); Diagram_point p_v = get_v_point(v_point_index); - return (std::max)(std::fabs(p_u.first - p_v.first), std::fabs(p_u.second - p_v.second)); + return std::max(std::fabs(p_u.first - p_v.first), std::fabs(p_u.second - p_v.second)); } -inline int Persistence_diagrams_graph::size() const { +/* inline */ int Persistence_diagrams_graph::size() const { return static_cast<int> (u.size() + v.size()); } -inline std::vector<double>* Persistence_diagrams_graph::sorted_distances() { +/* inline */ std::unique_ptr< std::vector<double> > Persistence_diagrams_graph::sorted_distances() { // could be optimized std::set<double> sorted_distances; for (int u_point_index = 0; u_point_index < size(); ++u_point_index) for (int v_point_index = 0; v_point_index < size(); ++v_point_index) sorted_distances.emplace(distance(u_point_index, v_point_index)); - return new std::vector<double>(sorted_distances.cbegin(), sorted_distances.cend()); + std::unique_ptr< std::vector<double> > sd_up(new std::vector<double>(sorted_distances.cbegin(), sorted_distances.cend())); + return sd_up; } -inline Diagram_point Persistence_diagrams_graph::get_u_point(int u_point_index) const { +/* inline */ Diagram_point Persistence_diagrams_graph::get_u_point(int u_point_index) const { if (!on_the_u_diagonal(u_point_index)) return u.at(u_point_index); Diagram_point projector = v.at(corresponding_point_in_v(u_point_index)); @@ -133,7 +134,7 @@ inline Diagram_point Persistence_diagrams_graph::get_u_point(int u_point_index) return Diagram_point(x, x); } -inline Diagram_point Persistence_diagrams_graph::get_v_point(int v_point_index) const { +/* inline */ Diagram_point Persistence_diagrams_graph::get_v_point(int v_point_index) const { if (!on_the_v_diagonal(v_point_index)) return v.at(v_point_index); Diagram_point projector = u.at(corresponding_point_in_u(v_point_index)); |