summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorcjamin <cjamin@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2017-05-31 11:54:55 +0000
committercjamin <cjamin@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2017-05-31 11:54:55 +0000
commit66873d7ee6dd369dd3d8c1909d6376ed2bce4cc7 (patch)
tree24ecc7a0a43829854f085542878222737b7077c1 /src/common
parentcbcf098dbc2af8f385216d74d6ffbbe08deaff66 (diff)
Check if birth <= death
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/read_persistence_from_file@2488 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: fc7aeca7ca7cd1ec2e9a9263849ec34d4dfa8414
Diffstat (limited to 'src/common')
-rw-r--r--src/common/include/gudhi/reader_utils.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/include/gudhi/reader_utils.h b/src/common/include/gudhi/reader_utils.h
index bb744b1c..6a89ce90 100644
--- a/src/common/include/gudhi/reader_utils.h
+++ b/src/common/include/gudhi/reader_utils.h
@@ -24,6 +24,7 @@
#define READER_UTILS_H_
#include <gudhi/graph_simplicial_complex.h>
+#include <gudhi/Debug_utils.h>
#include <boost/graph/adjacency_list.hpp>
@@ -321,6 +322,7 @@ void read_persistence_diagram_from_file(std::string const& filename, OutputItera
if (n >= 2) {
//int field = (n == 4 ? static_cast<int>(numbers[0]) : -1);
int dim = (n >= 3 ? static_cast<int>(numbers[n - 3]) : -1);
+ GUDHI_CHECK(numbers[n - 2] <= numbers[n - 1], "Error: birth > death.");
*out++ = std::make_tuple(dim, numbers[n - 2], numbers[n - 1]);
}
}
@@ -353,6 +355,7 @@ std::map<int, std::vector<std::pair<double, double>>> read_persistence_diagram_f
int n = sscanf(line.c_str(), "%lf %lf %lf %lf", &numbers[0], &numbers[1], &numbers[2], &numbers[3]);
if (n >= 2) {
int dim = (n >= 3 ? static_cast<int>(numbers[n - 3]) : -1);
+ GUDHI_CHECK(numbers[n - 2] <= numbers[n - 1], "Error: birth > death.");
ret[dim].push_back(std::make_pair(numbers[n - 2], numbers[n - 1]));
}
}
@@ -391,7 +394,10 @@ std::vector<std::pair<double, double>> read_persistence_diagram_from_file(std::s
int n = sscanf(line.c_str(), "%lf %lf %lf %lf", &numbers[0], &numbers[1], &numbers[2], &numbers[3]);
int dim = (n >= 3 ? static_cast<int>(numbers[n - 3]) : -1);
if (n >= 2 && (only_this_dim == -1 || dim == only_this_dim))
+ {
+ GUDHI_CHECK(numbers[n - 2] <= numbers[n - 1], "Error: birth > death.");
ret.push_back(std::make_pair(numbers[n - 2], numbers[n - 1]));
+ }
}
}