8#include <Eigen/SparseCore>
17template <
typename Derived>
18auto sparse_inf_norms(
const Eigen::SparseCompressedBase<Derived>& mat)
19 -> Eigen::VectorX<typename Derived::Scalar> {
20 using Scalar =
typename Derived::Scalar;
21 using DenseVector = Eigen::VectorX<Scalar>;
23 DenseVector norms = DenseVector::Zero(mat.rows());
24 for (
int k = 0; k < mat.outerSize(); ++k) {
25 for (
typename Derived::InnerIterator it{mat, k}; it; ++it) {
27 norms[it.row()] = std::max(norms[it.row()], abs(it.value()));