Morpheus 1.0.0
Dynamic matrix type and algorithms for sparse matrices
Loading...
Searching...
No Matches
Coo/Morpheus_Print_Impl.hpp
1
24#ifndef MORPHEUS_COO_PRINT_IMPL_HPP
25#define MORPHEUS_COO_PRINT_IMPL_HPP
26
27#include <Morpheus_FormatTags.hpp>
28#include <impl/Morpheus_Utils.hpp>
29
30#include <iostream>
31#include <iomanip> // setw, setprecision
32
33namespace Morpheus {
34namespace Impl {
35
36template <typename Printable, typename Stream>
37void print(const Printable& p, Stream& s,
38 typename std::enable_if<
39 Morpheus::is_coo_matrix_format_container_v<Printable>>::type* =
40 nullptr) {
41 using size_type = typename Printable::size_type;
42 print_matrix_header(p, s);
43
44 for (size_type n = 0; n < p.nnnz(); n++) {
45 s << " " << std::setw(14) << p.crow_indices(n);
46 s << " " << std::setw(14) << p.ccolumn_indices(n);
47 s << " " << std::setprecision(12) << std::setw(12) << "(" << p.cvalues(n)
48 << ")\n";
49 }
50}
51
52} // namespace Impl
53} // namespace Morpheus
54
55#endif // MORPHEUS_COO_PRINT_IMPL_HPP
Generic Morpheus interfaces.
Definition: dummy.cpp:24