From 8802dc5353020c75012f6ae8c26afefb4c78b161 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 6 Feb 2015 14:25:38 +0000 Subject: 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 --- .../include/gudhi/Persistent_cohomology.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Persistent_cohomology/include') 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::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::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; + } } } -- cgit v1.2.3