11#ifndef READ_PERSISTENCE_FROM_FILE_H_
12#define READ_PERSISTENCE_FROM_FILE_H_
26namespace Persistence_representations {
42std::vector<std::pair<double, double> > read_persistence_intervals_in_one_dimension_from_file(
43 std::string
const& filename,
int dimension = -1,
double what_to_substitute_for_infinite_bar = -1) {
47 std::vector<std::pair<double, double> > barcode_initial =
49 std::vector<std::pair<double, double> > final_barcode;
50 final_barcode.reserve(barcode_initial.size());
53 std::clog <<
"Here are the intervals that we read from the file : \n";
54 for (
size_t i = 0; i != barcode_initial.size(); ++i) {
55 std::clog << barcode_initial[i].first <<
" " << barcode_initial[i].second << std::endl;
60 for (
size_t i = 0; i != barcode_initial.size(); ++i) {
62 std::clog <<
"Considering interval : " << barcode_initial[i].first <<
" " << barcode_initial[i].second
66 if (barcode_initial[i].first > barcode_initial[i].second) {
68 if (dbg) std::clog <<
"Swap and enter \n";
70 final_barcode.push_back(std::pair<double, double>(barcode_initial[i].second, barcode_initial[i].first));
73 if (barcode_initial[i].second != std::numeric_limits<double>::infinity()) {
74 if (dbg) std::clog <<
"Simply enters\n";
77 final_barcode.push_back(std::pair<double, double>(barcode_initial[i].first, barcode_initial[i].second));
81 if ((barcode_initial[i].second == std::numeric_limits<double>::infinity()) &&
82 (what_to_substitute_for_infinite_bar != -1)) {
83 if (barcode_initial[i].first < what_to_substitute_for_infinite_bar) {
85 final_barcode.push_back(
86 std::pair<double, double>(barcode_initial[i].first, what_to_substitute_for_infinite_bar));
94 std::clog <<
"Here are the final bars that we are sending further : \n";
95 for (
size_t i = 0; i != final_barcode.size(); ++i) {
96 std::clog << final_barcode[i].first <<
" " << final_barcode[i].second << std::endl;
98 std::clog <<
"final_barcode.size() : " << final_barcode.size() << std::endl;
102 return final_barcode;
This file includes common file reader for GUDHI.
std::vector< std::pair< double, double > > read_persistence_intervals_in_dimension(std::string const &filename, int only_this_dim=-1)
Definition: reader_utils.h:355