60 Spy(std::string_view filename, std::string_view title,
61 std::string_view row_label, std::string_view col_label,
int rows,
63 : m_file{std::string{filename}, std::ios::binary} {
65 write32le(title.size());
66 m_file.write(title.data(), title.size());
69 write32le(row_label.size());
70 m_file.write(row_label.data(), row_label.size());
73 write32le(col_label.size());
74 m_file.write(col_label.data(), col_label.size());
86 void add(
const Eigen::SparseMatrix<double>& mat) {
88 write32le(mat.nonZeros());
91 for (
int k = 0; k < mat.outerSize(); ++k) {
92 for (Eigen::SparseMatrix<double>::InnerIterator it{mat, k}; it; ++it) {
95 if (it.value() > 0.0) {
97 }
else if (it.value() < 0.0) {