28 #ifndef SPLA_CPU_FORMAT_COO_VEC_HPP
29 #define SPLA_CPU_FORMAT_COO_VEC_HPP
45 std::vector<std::pair<uint, T>> buffer;
46 buffer.reserve(vec.
values);
49 buffer.emplace_back(vec.
Ai[i], vec.
Ax[i]);
52 std::sort(buffer.begin(), buffer.end(), [](
auto& a,
auto& b) { return a.first < b.first; });
55 vec.
Ai[i] = buffer[i].first;
56 vec.
Ax[i] = buffer[i].second;
63 vec.
Ai.resize(n_values);
64 vec.
Ax.resize(n_values);
79 assert(out.
Ax.empty());
81 for (std::size_t k = 0; k < in.
Ai.size(); ++k) {
CPU list-of-coordinates sparse vector representation.
Definition: cpu_formats.hpp:90
std::vector< uint > Ai
Definition: cpu_formats.hpp:96
std::vector< T > Ax
Definition: cpu_formats.hpp:97
Definition: cpu_formats.hpp:55
robin_hood::unordered_flat_map< uint, T > Ax
Definition: cpu_formats.hpp:63
uint values
Definition: tdecoration.hpp:58
void cpu_coo_vec_clear(CpuCooVec< T > &vec)
Definition: cpu_format_coo_vec.hpp:69
void cpu_coo_vec_resize(const uint n_values, CpuCooVec< T > &vec)
Definition: cpu_format_coo_vec.hpp:61
void cpu_coo_vec_sort(CpuCooVec< T > &vec)
Definition: cpu_format_coo_vec.hpp:44
void cpu_coo_vec_to_dok(const CpuCooVec< T > &in, CpuDokVec< T > &out)
Definition: cpu_format_coo_vec.hpp:76
std::uint32_t uint
Library index and size type.
Definition: config.hpp:56
Definition: algorithm.hpp:37