diff options
author | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2015-02-06 14:25:38 +0000 |
---|---|---|
committer | vrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb> | 2015-02-06 14:25:38 +0000 |
commit | 8802dc5353020c75012f6ae8c26afefb4c78b161 (patch) | |
tree | c264b84d49f442205afb34d88c8cfaab0e54361f /src/Persistent_cohomology/include | |
parent | 2d4979f6e6b9e502b1c5051d5a35935c4a65ac8c (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.h | 10 |
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; + } } } |