-
Notifications
You must be signed in to change notification settings - Fork 1
/
data_save_load.hpp
43 lines (35 loc) · 1.12 KB
/
data_save_load.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#include <iostream>
#include <string>
#include "defs.hpp"
#include "random_bearing_generator.hpp"
#include "qme.hpp"
namespace QME
{
class DataSaveLoad {
public:
// file_name should follow the convention N_noisePixel_rep
DataSaveLoad(std::string file_name); // read from file
bool file_exists();
BearingGenResult read_measurements();
bool write_measurements(const RandomBearingGenerator &rbg);
bool write_results(
const std::string file_name,
const QMEResult result,
const std::pair<scalar_t,scalar_t> rot_tra_err,
const std::pair<scalar_t,scalar_t> rot_tra_err_lcl) const;
bool write_results_sdp(
const std::string file_name,
const matrix3_t E,
const matrix_t X_sol,
const std::pair<scalar_t, scalar_t> errors,
const scalar_t alg_error,
const unsigned int time) const;
private:
bearing_t line_to_bearing(std::string);
// matrix3_t read_3_by_3_mat(std::ifstream &ifs);
matrix_t read_3_by_N_mat(std::ifstream &ifs, size_t N);
bool m_file_exists;
std::string m_filename;
};
} // end of namespace QME