#pragma once #include #include #include #include #include #include namespace fesa { struct MatrixContribution final { std::size_t row; std::size_t column; ElementId element; std::uint16_t local_order; double value; }; [[nodiscard]] std::vector canonicalize_contributions( std::span contributions); [[nodiscard]] SymmetricCsr merge_contributions( std::size_t order, std::span canonical); } // namespace fesa