57 Spy(std::string_view filename, std::string_view title,
58 std::string_view row_label, std::string_view col_label,
int rows,
62 write32le(title.size());
63 m_file.write(title.data(), title.size());
66 write32le(row_label.size());
67 m_file.write(row_label.data(), row_label.size());
70 write32le(col_label.size());
71 m_file.write(col_label.data(), col_label.size());
81 void add(
const Eigen::SparseMatrix<Scalar>& mat) {
83 write32le(mat.nonZeros());
86 for (
int k = 0; k < mat.outerSize(); ++k) {
87 for (
typename Eigen::SparseMatrix<Scalar>::InnerIterator it{mat, k}; it;
91 if (it.value() > Scalar(0)) {
93 }
else if (it.value() < Scalar(0)) {