summaryrefslogtreecommitdiff
path: root/src/Persistent_cohomology/include
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-02-06 14:25:38 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-02-06 14:25:38 +0000
commit8802dc5353020c75012f6ae8c26afefb4c78b161 (patch)
treec264b84d49f442205afb34d88c8cfaab0e54361f /src/Persistent_cohomology/include
parent2d4979f6e6b9e502b1c5051d5a35935c4a65ac8c (diff)
Add of persistence computation from a simple simplex tree - Fix of infinite persistent (1.#INF under windows) UT
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@462 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: f08233c68f60962fa6caa5603b3a8b4a16b2bb76
Diffstat (limited to 'src/Persistent_cohomology/include')
-rw-r--r--src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h
index 0f3e689b..c42e4be4 100644
--- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h
+++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h
@@ -696,12 +696,20 @@ class Persistent_cohomology {
* feature exists in homology with Z/piZ coefficients.
*/
void output_diagram(std::ostream& ostream = std::cout) {
+
cmp_intervals_by_length cmp(cpx_);
persistent_pairs_.sort(cmp);
+ bool has_infinity = std::numeric_limits<Filtration_value>::has_infinity;
for (auto pair : persistent_pairs_) {
- ostream << get<2>(pair) << " " << cpx_->dimension(get<0>(pair)) << " "
+ // Special case on windows, inf is "1.#INF" (cf. unitary tests and R package TDA)
+ if (has_infinity && cpx_->filtration(get<1>(pair)) == std::numeric_limits<Filtration_value>::infinity()) {
+ ostream << get<2>(pair) << " " << cpx_->dimension(get<0>(pair)) << " "
+ << cpx_->filtration(get<0>(pair)) << " inf " << std::endl;
+ } else {
+ ostream << get<2>(pair) << " " << cpx_->dimension(get<0>(pair)) << " "
<< cpx_->filtration(get<0>(pair)) << " "
<< cpx_->filtration(get<1>(pair)) << " " << std::endl;
+ }
}
}