-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcsr.cpp
More file actions
93 lines (75 loc) · 1.7 KB
/
csr.cpp
File metadata and controls
93 lines (75 loc) · 1.7 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "csr.h"
void csr_c::add_col_idx(std::size_t idx) {
col_idx.push_back(idx);
max_col = std::max(max_col, idx);
}
void csr_c::add_label(std::string const & label) {
labels.push_back(label);
label_map_t::iterator const & it = label_map.find(label);
if (it == label_map.end()) {
label_map.insert(label_pair_t(label, map_idx));
map_idx++;
idx_map.push_back(label);
}
}
void csr_c::add_row_idx(std::size_t idx) {
row_idx.push_back(idx);
}
void csr_c::add_value(double value) {
values.push_back(value);
}
std::size_t csr_c::c_idx(std::size_t idx) const {
#ifdef NDEBUG
return col_idx[idx];
#else
return col_idx.at(idx);
#endif
}
void csr_c::clear() {
row_idx.clear();
col_idx.clear();
labels.clear();
values.clear();
}
std::size_t csr_c::cols() const {
return max_col + 1;
}
std::size_t csr_c::get_label_idx(std::size_t idx) const {
std::string lbl = label(idx);
label_map_t::const_iterator const & it = label_map.find(lbl);
return it->second;
}
std::string const & csr_c::get_label_from_idx(std::size_t idx) const {
#ifdef NDEBUG
return idx_map[idx];
#else
return idx_map.at(idx);
#endif
}
std::string const & csr_c::label(std::size_t idx) const {
#ifdef NDEBUG
return labels[idx];
#else
return labels.at(idx);
#endif
}
std::size_t csr_c::num_labels() const {
return label_map.size();
}
std::size_t csr_c::r_idx(std::size_t idx) const {
#ifdef NDEBUG
return row_idx[idx];
#else
return row_idx.at(idx);
#endif
}
std::size_t csr_c::rows() const {
return labels.size();
}
double csr_c::value(std::size_t idx) const {
#ifdef NDEBUG
return values[idx];
#else
return values.at(idx);
#endif
}