28 #ifndef SPLA_CPU_FORMATS_HPP
29 #define SPLA_CPU_FORMATS_HPP
36 #include <robin_hood.hpp>
43 #include <unordered_map>
61 using Reduce = std::function<T(T accum, T added)>;
63 robin_hood::unordered_flat_map<uint, T>
Ax{};
114 using Row = std::vector<Entry>;
115 using Reduce = std::function<T(T accum, T added)>;
117 std::vector<Row>
Ar{};
134 using Key = std::pair<uint, uint>;
135 using Reduce = std::function<T(T accum, T added)>;
137 robin_hood::unordered_flat_map<Key, T, pair_hash>
Ax;
154 std::vector<uint>
Ai;
155 std::vector<uint>
Aj;
172 std::vector<uint>
Ap;
173 std::vector<uint>
Aj;
CPU list-of-coordinates sparse vector representation.
Definition: cpu_formats.hpp:90
~CpuCooVec() override=default
static constexpr FormatVector FORMAT
Definition: cpu_formats.hpp:92
std::vector< uint > Ai
Definition: cpu_formats.hpp:96
std::vector< T > Ax
Definition: cpu_formats.hpp:97
CPU list of coordinates matrix format.
Definition: cpu_formats.hpp:148
std::vector< uint > Aj
Definition: cpu_formats.hpp:155
~CpuCoo() override=default
std::vector< T > Ax
Definition: cpu_formats.hpp:156
std::vector< uint > Ai
Definition: cpu_formats.hpp:154
static constexpr FormatMatrix FORMAT
Definition: cpu_formats.hpp:150
CPU compressed sparse row matrix format.
Definition: cpu_formats.hpp:166
std::vector< uint > Ap
Definition: cpu_formats.hpp:172
std::vector< uint > Aj
Definition: cpu_formats.hpp:173
static constexpr FormatMatrix FORMAT
Definition: cpu_formats.hpp:168
std::vector< T > Ax
Definition: cpu_formats.hpp:174
~CpuCsr() override=default
CPU one-dim array for dense vector representation.
Definition: cpu_formats.hpp:74
~CpuDenseVec() override=default
static constexpr FormatVector FORMAT
Definition: cpu_formats.hpp:76
std::vector< T > Ax
Definition: cpu_formats.hpp:80
Definition: cpu_formats.hpp:55
static constexpr FormatVector FORMAT
Definition: cpu_formats.hpp:57
robin_hood::unordered_flat_map< uint, T > Ax
Definition: cpu_formats.hpp:63
~CpuDokVec() override=default
std::function< T(T accum, T added)> Reduce
Definition: cpu_formats.hpp:61
Reduce reduce
Definition: cpu_formats.hpp:64
Dictionary of keys sparse matrix format.
Definition: cpu_formats.hpp:128
std::function< T(T accum, T added)> Reduce
Definition: cpu_formats.hpp:135
robin_hood::unordered_flat_map< Key, T, pair_hash > Ax
Definition: cpu_formats.hpp:137
~CpuDok() override=default
Reduce reduce
Definition: cpu_formats.hpp:138
std::pair< uint, uint > Key
Definition: cpu_formats.hpp:134
static constexpr FormatMatrix FORMAT
Definition: cpu_formats.hpp:130
CPU list-of-list matrix format for fast incremental build.
Definition: cpu_formats.hpp:107
static constexpr FormatMatrix FORMAT
Definition: cpu_formats.hpp:109
std::vector< Entry > Row
Definition: cpu_formats.hpp:114
std::function< T(T accum, T added)> Reduce
Definition: cpu_formats.hpp:115
std::pair< uint, T > Entry
Definition: cpu_formats.hpp:113
~CpuLil() override=default
std::vector< Row > Ar
Definition: cpu_formats.hpp:117
Reduce reduce
Definition: cpu_formats.hpp:118
Base class for typed decoration for storage object.
Definition: tdecoration.hpp:50
Definition: algorithm.hpp:37