2 #ifndef TILEDARRAY_DENSETOSPARSE_H__INCLUDED 3 #define TILEDARRAY_DENSETOSPARSE_H__INCLUDED 5 #include "../dist_array.h" 14 template <
typename Tile>
15 DistArray<Tile, SparsePolicy>
22 const auto end = dense_array.
end();
23 const auto begin = dense_array.
begin();
24 for (
auto it = begin; it != end; ++it) {
26 tile_norms[it.ordinal()] = it->get().
norm();
34 ArrayType sparse_array(dense_array.
world(), dense_array.
trange(),
40 for (
auto it = begin; it != end; ++it) {
41 const auto ord = it.ordinal();
42 if (!sparse_array.is_zero(ord)) {
43 sparse_array.set(ord, it->get().clone());
51 template <
typename Tile>
52 DistArray<Tile, SparsePolicy>
An N-dimensional tensor object.
const trange_type & trange() const
Tiled range accessor.
DistArray< Tile, SparsePolicy > to_sparse(DistArray< Tile, DensePolicy > const &dense_array)
Function to convert a dense array into a block sparse array.
scalar_type norm() const
Vector 2-norm.
World & world() const
World accessor.
iterator begin()
Begin iterator factory function.
iterator end()
End iterator factory function.